mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-24 13:24:56 +08:00
Avoid filling the wake_sds when massive numbers of connections close at once.
This commit is contained in:
parent
184fc4878a
commit
2415f5085d
@ -74,14 +74,9 @@ Listener **slap_listeners = NULL;
|
||||
static ber_socket_t wake_sds[2];
|
||||
static int emfile;
|
||||
|
||||
#if defined(NO_THREADS) || defined(HAVE_GNU_PTH)
|
||||
static int waking;
|
||||
#define WAKE_LISTENER(w) \
|
||||
((w && !waking) ? tcp_write( wake_sds[1], "0", 1 ), waking=1 : 0)
|
||||
#else
|
||||
#define WAKE_LISTENER(w) \
|
||||
do { if (w) tcp_write( wake_sds[1], "0", 1 ); } while(0)
|
||||
#endif
|
||||
do { if (w && !waking) tcp_write( wake_sds[1], "0", 1 ); waking=w; } while(0)
|
||||
|
||||
volatile sig_atomic_t slapd_shutdown = 0, slapd_gentle_shutdown = 0;
|
||||
volatile sig_atomic_t slapd_abrupt_shutdown = 0;
|
||||
@ -1304,9 +1299,7 @@ slapd_daemon_task(
|
||||
if( FD_ISSET( wake_sds[0], &readfds ) ) {
|
||||
char c[BUFSIZ];
|
||||
tcp_read( wake_sds[0], c, sizeof(c) );
|
||||
#if defined(NO_THREADS) || defined(HAVE_GNU_PTH)
|
||||
waking = 0;
|
||||
#endif
|
||||
ns--;
|
||||
continue;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user