httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jerenkra...@apache.org
Subject cvs commit: httpd-2.0/server/mpm/worker worker.c
Date Wed, 19 Sep 2001 05:58:09 GMT
jerenkrantz    01/09/18 22:58:09

  Modified:    .        CHANGES
               server/mpm/worker worker.c
  Log:
  This patch fixes a nasty bug in the worker MPM where the
  state of the worker threads was not being reported back to the
  scoreboard, and eventually all the threads running in the children
  would be reported as being in the "C -- closing connection" state.
  This would wreak havoc on the idle_server_maintenance() routine. Since
  these threads would never be counted as idle, the server would
  spawn children as fast as possible.
  
  Submitted by:	Aaron Bannert <aaron@clove.org>
  Reviewed by:	Justin Erenkrantz
  
  Revision  Changes    Path
  1.365     +2 -0      httpd-2.0/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/CHANGES,v
  retrieving revision 1.364
  retrieving revision 1.365
  diff -u -r1.364 -r1.365
  --- CHANGES	2001/09/19 05:52:42	1.364
  +++ CHANGES	2001/09/19 05:58:08	1.365
  @@ -1,5 +1,7 @@
   Changes with Apache 2.0.26-dev
   
  +  *) Fix worker MPM's scoreboard logic.  [Aaron Bannert <aaron@clove.org>]
  +
     *) Eliminate the wasteful run-time conversion of method names from strings 
        to numbers in places where the methods are known at compile time.  
        [Brian Pane <bpane@pacbell.net>]
  
  
  
  1.24      +4 -0      httpd-2.0/server/mpm/worker/worker.c
  
  Index: worker.c
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/worker/worker.c,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- worker.c	2001/09/18 22:13:58	1.23
  +++ worker.c	2001/09/19 05:58:09	1.24
  @@ -697,7 +697,11 @@
   
       free(ti);
   
  +    (void) ap_update_child_status(process_slot, thread_slot,
  +                                  SERVER_STARTING, (request_rec *)NULL);
       while (!workers_may_exit) {
  +        (void) ap_update_child_status(process_slot, thread_slot,
  +                                      SERVER_READY, (request_rec *)NULL);
           rv = ap_queue_pop(worker_queue, &csd, &ptrans);
           /* We get FD_QUEUE_EINTR whenever ap_queue_pop() has been interrupted
            * from an explicit call to ap_queue_interrupt_all(). This allows
  
  
  

Mime
View raw message