mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-27 01:59:38 -05:00
Tweak prev commit, add more notes (re ITS#4667)
This commit is contained in:
parent
354e90a0d9
commit
eb16636abe
1 changed files with 7 additions and 1 deletions
|
|
@ -831,6 +831,10 @@ void connection_closing( Connection *c, const char *why )
|
|||
/* wake write blocked operations */
|
||||
if ( c->c_writewaiter ) {
|
||||
ldap_pvt_thread_cond_signal( &c->c_write_cv );
|
||||
/* ITS#4667 this may allow another thread to drop into
|
||||
* connection_resched / connection_close before we
|
||||
* finish, but that's OK.
|
||||
*/
|
||||
ldap_pvt_thread_mutex_unlock( &c->c_mutex );
|
||||
slapd_clr_write( sd, 1 );
|
||||
ldap_pvt_thread_mutex_lock( &c->c_write_mutex );
|
||||
|
|
@ -854,10 +858,12 @@ connection_close( Connection *c )
|
|||
assert( connections != NULL );
|
||||
assert( c != NULL );
|
||||
|
||||
if ( c->c_conn_state != SLAP_C_CLOSING )
|
||||
/* ITS#4667 we may have gotten here twice */
|
||||
if ( c->c_conn_state == SLAP_C_INVALID )
|
||||
return;
|
||||
|
||||
assert( c->c_struct_state == SLAP_C_USED );
|
||||
assert( c->c_struct_state == SLAP_C_CLOSING );
|
||||
|
||||
/* NOTE: c_mutex should be locked by caller */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue