From: Howard Chu Date: Tue, 16 Nov 2004 20:26:50 +0000 (+0000) Subject: Avoid filling the wake_sds when massive numbers of connections close at once. X-Git-Tag: OPENLDAP_REL_ENG_2_3_0ALPHA~295 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=2415f5085df3eb308f53e6116d954382f975c6a0;p=openldap Avoid filling the wake_sds when massive numbers of connections close at once. --- diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index 2334137cfe..87e65ecfd2 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -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; }