mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-24 13:24:56 +08:00
ITS#5836 more for 1.432, writetimeout wasn't taking effect if
idletimeout wasn't also set. Also, timeout check would keep getting pushed back if multiple writers were waiting.
This commit is contained in:
parent
4353379403
commit
e6173ac9c2
@ -957,7 +957,7 @@ slapd_set_write( ber_socket_t s, int wake )
|
||||
SLAP_SOCK_SET_WRITE( s );
|
||||
slap_daemon.sd_nwriters++;
|
||||
}
|
||||
if (( wake & 2 ) && global_writetimeout ) {
|
||||
if (( wake & 2 ) && global_writetimeout && !chk_writetime ) {
|
||||
chk_writetime = slap_get_time();
|
||||
}
|
||||
|
||||
@ -2177,7 +2177,7 @@ slapd_daemon_task(
|
||||
*/
|
||||
if ( chk_writetime ) {
|
||||
tv.tv_sec = global_writetimeout;
|
||||
tv.tv_usec = global_writetimeout;
|
||||
tv.tv_usec = 0;
|
||||
if ( difftime( chk_writetime, now ) < 0 )
|
||||
check = 2;
|
||||
} else {
|
||||
@ -2245,7 +2245,7 @@ slapd_daemon_task(
|
||||
|
||||
nfds = SLAP_EVENT_MAX;
|
||||
|
||||
if ( global_idletimeout && slap_daemon.sd_nactives ) at = 1;
|
||||
if (( chk_writetime || global_idletimeout ) && slap_daemon.sd_nactives ) at = 1;
|
||||
|
||||
ldap_pvt_thread_mutex_unlock( &slap_daemon.sd_mutex );
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user