mturk 2005/02/17 04:40:55 Modified: jk/native/common jk_ajp_common.c Log: Close socket outside critical section. Closing sockets can take a while, so no need to lock all the threads. Revision Changes Path 1.87 +11 -4 jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c Index: jk_ajp_common.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c,v retrieving revision 1.86 retrieving revision 1.87 diff -u -r1.86 -r1.87 --- jk_ajp_common.c 17 Feb 2005 12:32:16 -0000 1.86 +++ jk_ajp_common.c 17 Feb 2005 12:40:54 -0000 1.87 @@ -724,12 +724,12 @@ { int rc; ajp_worker_t *aw = ae->worker; + int sock = ae->sd; JK_ENTER_CS(&aw->cs, rc); if (rc) { unsigned int i; /* Close existing endpoint socket */ - jk_close_socket(ae->sd); ae->sd = -1; for (i = 0; i < aw->ep_cache_sz; i++) { /* Find cache slot with usable socket */ @@ -741,6 +741,7 @@ } JK_LEAVE_CS(&aw->cs, rc); } + jk_close_socket(sock); } /* @@ -2002,8 +2003,12 @@ JK_ENTER_CS(&w->cs, rc); if (rc) { - int i; - + int i, sock = -1; + + if (p->sd > 0 && !p->reuse) { + sock = p->sd; + p->sd = -1; + } for(i = w->ep_cache_sz - 1; i >= 0; i--) { if (w->ep_cache[i] == NULL) { w->ep_cache[i] = p; @@ -2013,6 +2018,8 @@ } *e = NULL; JK_LEAVE_CS(&w->cs, rc); + if (sock >= 0) + jk_close_socket(sock); if (i >= 0) { if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG,
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]