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();
}
*/
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 {
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 );