From: Howard Chu Date: Wed, 11 Dec 2002 18:36:02 +0000 (+0000) Subject: undef CONNECTION_INPUT_LOOP, use DATA_READY_LOOP. Seems to help prevent X-Git-Tag: NO_SLAP_OP_BLOCKS~689 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b40e40ec3c521518c59dc44d5ed3c255712dd6af;p=openldap undef CONNECTION_INPUT_LOOP, use DATA_READY_LOOP. Seems to help prevent hangs in heavy load situations. --- diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c index 8dbf0e63d7..9a18de7bd1 100644 --- a/servers/slapd/connection.c +++ b/servers/slapd/connection.c @@ -1227,17 +1227,21 @@ int connection_read(ber_socket_t s) } #endif -#define CONNECTION_INPUT_LOOP 1 +/* #define CONNECTION_INPUT_LOOP 1 */ +#define DATA_READY_LOOP 1 -#ifdef DATA_READY_LOOP - while( !rc && ber_sockbuf_ctrl( c->c_sb, LBER_SB_DATA_READY, NULL ) ) -#elif CONNECTION_INPUT_LOOP - while(!rc) -#endif + do { /* How do we do this without getting into a busy loop ? */ rc = connection_input( c ); } +#ifdef DATA_READY_LOOP + while( !rc && ber_sockbuf_ctrl( c->c_sb, LBER_SB_OPT_DATA_READY, NULL ) ); +#elif CONNECTION_INPUT_LOOP + while(!rc); +#else + while(0); +#endif if( rc < 0 ) { #ifdef NEW_LOGGING