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]

Reply via email to