]> git.sur5r.net Git - openldap/commitdiff
ITS#4476 revert connection_write processing back into main thread
authorHoward Chu <hyc@openldap.org>
Thu, 6 Apr 2006 04:34:37 +0000 (04:34 +0000)
committerHoward Chu <hyc@openldap.org>
Thu, 6 Apr 2006 04:34:37 +0000 (04:34 +0000)
servers/slapd/connection.c
servers/slapd/daemon.c
servers/slapd/proto-slap.h

index 0c788c7b1a7db28e17fd483a261bae28ad012efd..46c28dfc1e358f0e71928b5f577f952614cfd2ab 100644 (file)
@@ -2172,37 +2172,6 @@ static int connection_op_activate( Operation *op )
        return rc;
 }
 
-#ifdef SLAP_LIGHTWEIGHT_DISPATCHER
-static int connection_write( ber_socket_t s );
-static void *connection_write_thread( void *ctx, void *arg )
-{
-       return (void *)(long)connection_write((long)arg);
-}
-
-int connection_write_activate( ber_socket_t s )
-{
-       int rc;
-
-       /*
-        * suspend reading on this file descriptor until a connection processing
-        * thread write data on it. Otherwise the listener thread will repeatedly
-        * submit the same event on it to the pool.
-        */
-       slapd_clr_write( s, 0);
-
-       rc = ldap_pvt_thread_pool_submit( &connection_pool,
-               connection_write_thread, (void *)(long)s );
-
-       if( rc != 0 ) {
-               Debug( LDAP_DEBUG_ANY,
-                       "connection_write_activate(%d): submit failed (%d)\n",
-                       (int) s, rc, 0 );
-       }
-       return rc;
-}
-
-static
-#endif
 int connection_write(ber_socket_t s)
 {
        Connection *c;
@@ -2210,6 +2179,8 @@ int connection_write(ber_socket_t s)
 
        assert( connections != NULL );
 
+       slapd_clr_write( s, 0 );
+
        ldap_pvt_thread_mutex_lock( MCA_GET_CONN_MUTEX( s ) );
 
        c = connection_get( s );
@@ -2221,9 +2192,6 @@ int connection_write(ber_socket_t s)
                return -1;
        }
 
-#ifndef SLAP_LIGHTWEIGHT_DISPATCHER
-       slapd_clr_write( s, 0);
-#endif
        c->c_n_write++;
 
        Debug( LDAP_DEBUG_TRACE,
index 004a3435c9e31e50e5282247c59ea5da0f66590f..4f6875ff78ef79ebd5db8ba05065a56aa4ca3367 100644 (file)
@@ -1979,9 +1979,6 @@ slapd_daemon_task(
                                "daemon: write active on %d\n",
                                wd, 0, 0 );
 
-#ifdef SLAP_LIGHTWEIGHT_DISPATCHER
-                       connection_write_activate( wd );
-#else
                        /*
                         * NOTE: it is possible that the connection was closed
                         * and that the stream is now inactive.
@@ -1997,7 +1994,6 @@ slapd_daemon_task(
                                        nrfds--;
                                }
                        }
-#endif
                }
 
                for ( i = 0; nrfds > 0; i++ ) {
@@ -2105,9 +2101,6 @@ slapd_daemon_task(
 
                                        waswrite = 1;
 
-#ifdef SLAP_LIGHTWEIGHT_DISPATCHER
-                                       connection_write_activate( fd );
-#else
                                        /*
                                         * NOTE: it is possible that the connection was closed
                                         * and that the stream is now inactive.
@@ -2117,7 +2110,6 @@ slapd_daemon_task(
                                        if ( connection_write( fd ) < 0 ) {
                                                continue;
                                        }
-#endif
                                }
                                /* If event is a read or an error */
                                if( SLAP_EVENT_IS_READ( i ) || !waswrite ) {
index 9d3e626831356537ca1cac74491beff067efad15..30900a9f0d48eaa19a50d85b5695cb53c504e55a 100644 (file)
@@ -647,12 +647,11 @@ LDAP_SLAPD_F (const char *) connection_state2str LDAP_P(( int state ))
        LDAP_GCCATTR((const));
 
 #ifdef SLAP_LIGHTWEIGHT_DISPATCHER
-LDAP_SLAPD_F (int) connection_write_activate LDAP_P((ber_socket_t s));
 LDAP_SLAPD_F (int) connection_read_activate LDAP_P((ber_socket_t s));
 #else
-LDAP_SLAPD_F (int) connection_write LDAP_P((ber_socket_t s));
 LDAP_SLAPD_F (int) connection_read LDAP_P((ber_socket_t s));
 #endif
+LDAP_SLAPD_F (int) connection_write LDAP_P((ber_socket_t s));
 
 LDAP_SLAPD_F (unsigned long) connections_nextid(void);