Return-Path: Delivered-To: apache-cvs-archive@hyperreal.org Received: (qmail 11428 invoked by uid 6000); 27 Aug 1999 21:22:33 -0000 Received: (qmail 11411 invoked by uid 2016); 27 Aug 1999 21:22:31 -0000 Delivered-To: apcore-apache-2.0-cvs@apache.org Received: (qmail 11407 invoked by uid 216); 27 Aug 1999 21:22:31 -0000 Date: 27 Aug 1999 21:22:31 -0000 Message-ID: <19990827212231.11406.qmail@hyperreal.org> From: manoj@hyperreal.org To: apache-2.0-cvs@apache.org Subject: cvs commit: apache-2.0/src/modules/mpm/dexter dexter.c Sender: apache-cvs-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org manoj 99/08/27 14:22:30 Modified: src/modules/mpm/dexter dexter.c Log: Fix a bug in setting max_daemons_limit that could lead to not noticing that a child has died in some cases. Revision Changes Path 1.28 +8 -3 apache-2.0/src/modules/mpm/dexter/dexter.c Index: dexter.c =================================================================== RCS file: /home/cvs/apache-2.0/src/modules/mpm/dexter/dexter.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -u -r1.27 -r1.28 --- dexter.c 1999/08/17 22:04:54 1.27 +++ dexter.c 1999/08/27 21:22:28 1.28 @@ -100,6 +100,9 @@ * The max child slot ever assigned, preserved across restarts. Necessary * to deal with NumServers changes across SIGWINCH restarts. We use this * value to optimize routines that have to scan the entire scoreboard. + * + * XXX - It might not be worth keeping this code in. There aren't very + * many child processes in this MPM. */ int max_daemons_limit = -1; @@ -1141,13 +1144,15 @@ unsigned char status = ap_scoreboard_image[i].status; if (status == SERVER_DEAD) { - free_slots[free_length] = i; - ++free_length; + if (free_length < spawn_rate) { + free_slots[free_length] = i; + ++free_length; + } } else { last_non_dead = i; } - if (free_length >= spawn_rate) { + if (i >= max_daemons_limit && free_length >= spawn_rate) { break; } }