]> git.sur5r.net Git - openldap/commitdiff
undef CONNECTION_INPUT_LOOP, use DATA_READY_LOOP. Seems to help prevent
authorHoward Chu <hyc@openldap.org>
Wed, 11 Dec 2002 18:36:02 +0000 (18:36 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 11 Dec 2002 18:36:02 +0000 (18:36 +0000)
hangs in heavy load situations.

servers/slapd/connection.c

index 8dbf0e63d7522d1ef93108993acec5a7e46e0b00..9a18de7bd182872627397227b174d48443fee517 100644 (file)
@@ -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