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]