You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ma...@hyperreal.org on 1999/07/16 07:30:36 UTC

cvs commit: apache-2.0/mpm/src/modules/mpm/spmt_os2 mpm_default.h Makefile.tmpl spmt_os2.c

manoj       99/07/15 22:30:36

  Modified:    mpm/src/include httpd.h
               mpm/src/modules/mpm/mpmt_pthread Makefile.tmpl acceptlock.c
                        mpmt_pthread.h scoreboard.h
               mpm/src/modules/mpm/prefork Makefile.tmpl prefork.c
               mpm/src/modules/mpm/spmt_os2 Makefile.tmpl spmt_os2.c
  Added:       mpm/src/modules/mpm/mpmt_pthread mpm_default.h
               mpm/src/modules/mpm/prefork mpm_default.h
               mpm/src/modules/mpm/spmt_os2 mpm_default.h
  Log:
  Move HARD_SERVER_LIMIT, HARD_THREAD_LIMIT, and other defines from
  httpd.h that are really mpm-specific, and move them into a header file
  in each MPM directory.
  
  Revision  Changes    Path
  1.7       +0 -47     apache-2.0/mpm/src/include/httpd.h
  
  Index: httpd.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/include/httpd.h,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -d -u -r1.6 -r1.7
  --- httpd.h	1999/07/12 22:51:09	1.6
  +++ httpd.h	1999/07/16 05:30:25	1.7
  @@ -277,53 +277,6 @@
   /* The size of the server's internal read-write buffers */
   #define IOBUFSIZE 8192
   
  -/* Number of servers to spawn off by default --- also, if fewer than
  - * this free when the caretaker checks, it will spawn more.
  - */
  -#ifndef DEFAULT_START_DAEMON
  -#define DEFAULT_START_DAEMON 5
  -#endif
  -
  -/* Maximum number of *free* server processes --- more than this, and
  - * they will die off.
  - */
  -
  -#ifndef DEFAULT_MAX_FREE_DAEMON
  -#define DEFAULT_MAX_FREE_DAEMON 10
  -#endif
  -
  -/* Minimum --- fewer than this, and more will be created */
  -
  -#ifndef DEFAULT_MIN_FREE_DAEMON
  -#define DEFAULT_MIN_FREE_DAEMON 5
  -#endif
  -
  -/* Limit on the total --- clients will be locked out if more servers than
  - * this are needed.  It is intended solely to keep the server from crashing
  - * when things get out of hand.
  - *
  - * We keep a hard maximum number of servers, for two reasons --- first off,
  - * in case something goes seriously wrong, we want to stop the fork bomb
  - * short of actually crashing the machine we're running on by filling some
  - * kernel table.  Secondly, it keeps the size of the scoreboard file small
  - * enough that we can read the whole thing without worrying too much about
  - * the overhead.
  - */
  -#ifndef HARD_SERVER_LIMIT
  -#define HARD_SERVER_LIMIT 8 
  -#endif
  -
  -/* Limit on the threads per process.  Clients will be locked out if more than
  - * this  * HARD_SERVER_LIMIT are needed.
  - *
  - * We keep this for one reason it keeps the size of the scoreboard file small
  - * enough that we can read the whole thing without worrying too much about
  - * the overhead.
  - */
  -#ifndef HARD_THREAD_LIMIT
  -#define HARD_THREAD_LIMIT 64 
  -#endif
  -
   /*
    * Special Apache error codes. These are basically used
    *  in http_main.c so we can keep track of various errors.
  
  
  
  1.6       +2 -3      apache-2.0/mpm/src/modules/mpm/mpmt_pthread/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/Makefile.tmpl,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -d -u -r1.5 -r1.6
  --- Makefile.tmpl	1999/07/13 20:32:49	1.5
  +++ Makefile.tmpl	1999/07/16 05:30:28	1.6
  @@ -81,8 +81,7 @@
    $(INCDIR)/ap_hooks.h $(INCDIR)/http_core.h \
    $(INCDIR)/http_connection.h $(INCDIR)/ap_mpm.h \
    $(OSDIR)/unixd.h $(OSDIR)/iol_socket.h \
  - $(INCDIR)/ap_listen.h scoreboard.h \
  - acceptlock.h ../../../lib/expat-lite/xmlparse.h
  + $(INCDIR)/ap_listen.h scoreboard.h mpm_default.h acceptlock.h
   scoreboard.o: scoreboard.c $(INCDIR)/httpd.h \
    $(INCDIR)/ap_config.h $(INCDIR)/ap_mmn.h \
    $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h \
  @@ -94,4 +93,4 @@
    $(INCDIR)/http_main.h $(INCDIR)/http_core.h \
    $(INCDIR)/http_config.h $(INCDIR)/ap_hooks.h \
    $(OSDIR)/unixd.h $(INCDIR)/http_conf_globals.h \
  - mpmt_pthread.h scoreboard.h
  + mpmt_pthread.h scoreboard.h mpm_default.h
  
  
  
  1.6       +1 -0      apache-2.0/mpm/src/modules/mpm/mpmt_pthread/acceptlock.c
  
  Index: acceptlock.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/acceptlock.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -d -u -r1.5 -r1.6
  --- acceptlock.c	1999/07/09 20:40:20	1.5
  +++ acceptlock.c	1999/07/16 05:30:28	1.6
  @@ -153,6 +153,7 @@
   /* XXX - Don't know if we need the intraprocess locks here */
   
   #include <ulocks.h>
  +#include "mpm_default.h"
   
   static ulock_t *uslock = NULL;
   
  
  
  
  1.3       +5 -0      apache-2.0/mpm/src/modules/mpm/mpmt_pthread/mpmt_pthread.h
  
  Index: mpmt_pthread.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/mpmt_pthread.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -d -u -r1.2 -r1.3
  --- mpmt_pthread.h	1999/07/09 20:40:23	1.2
  +++ mpmt_pthread.h	1999/07/16 05:30:29	1.3
  @@ -55,9 +55,14 @@
    * 
    */ 
   
  +#ifndef APACHE_MPM_MPMT_PTHREAD_H
  +#define APACHE_MPM_MPMT_PTHREAD_H
  +
   extern int ap_threads_per_child;
   extern int ap_max_requests_per_child;
   extern int ap_pipe_of_death[2];
   extern void clean_child_exit(int);
   extern int ap_extended_status;
   extern void clean_child_exit(int);
  +
  +#endif /* APACHE_MPM_MPMT_PTHREAD_H */
  
  
  
  1.4       +2 -0      apache-2.0/mpm/src/modules/mpm/mpmt_pthread/scoreboard.h
  
  Index: scoreboard.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/scoreboard.h,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -d -u -r1.3 -r1.4
  --- scoreboard.h	1999/07/09 20:40:09	1.3
  +++ scoreboard.h	1999/07/16 05:30:29	1.4
  @@ -70,6 +70,8 @@
   #endif /* TPF */
   #endif
   
  +#include "mpm_default.h"	/* For HARD_.*_LIMIT */
  +
   /* Scoreboard info on a process is, for now, kept very brief --- 
    * just status value and pid (the latter so that the caretaker process
    * can properly update the scoreboard when a process dies).  We may want
  
  
  
  1.1                  apache-2.0/mpm/src/modules/mpm/mpmt_pthread/mpm_default.h
  
  Index: mpm_default.h
  ===================================================================
  /* ====================================================================
   * Copyright (c) 1995-1999 The Apache Group.  All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without 
   * modification, are permitted provided that the following conditions 
   * are met: 
   * 
   * 1. Redistributions of source code must retain the above copyright 
   *    notice, this list of conditions and the following disclaimer.  
   * 
   * 2. Redistributions in binary form must reproduce the above copyright 
   *    notice, this list of conditions and the following disclaimer in 
   *    the documentation and/or other materials provided with the 
   *    distribution. 
   * 
   * 3. All advertising materials mentioning features or use of this 
   *    software must display the following acknowledgment: 
   *    "This product includes software developed by the Apache Group 
   *    for use in the Apache HTTP server project (http://www.apache.org/)." 
   * 
   * 4. The names "Apache Server" and "Apache Group" must not be used to 
   *    endorse or promote products derived from this software without 
   *    prior written permission. For written permission, please contact 
   *    apache@apache.org. 
   * 
   * 5. Products derived from this software may not be called "Apache" 
   *    nor may "Apache" appear in their names without prior written 
   *    permission of the Apache Group. 
   * 
   * 6. Redistributions of any form whatsoever must retain the following 
   *    acknowledgment: 
   *    "This product includes software developed by the Apache Group 
   *    for use in the Apache HTTP server project (http://www.apache.org/)." 
   * 
   * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY 
   * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
   * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR 
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
   * OF THE POSSIBILITY OF SUCH DAMAGE. 
   * ==================================================================== 
   * 
   * This software consists of voluntary contributions made by many 
   * individuals on behalf of the Apache Group and was originally based 
   * on public domain software written at the National Center for 
   * Supercomputing Applications, University of Illinois, Urbana-Champaign. 
   * For more information on the Apache Group and the Apache HTTP server 
   * project, please see <http://www.apache.org/>. 
   * 
   */ 
  
  #ifndef APACHE_MPM_DEFAULT_H
  #define APACHE_MPM_DEFAULT_H
  
  /* Number of servers to spawn off by default --- also, if fewer than
   * this free when the caretaker checks, it will spawn more.
   */
  #ifndef DEFAULT_START_DAEMON
  #define DEFAULT_START_DAEMON 5
  #endif
  
  /* Maximum number of *free* server processes --- more than this, and
   * they will die off.
   */
  
  #ifndef DEFAULT_MAX_FREE_DAEMON
  #define DEFAULT_MAX_FREE_DAEMON 10
  #endif
  
  /* Minimum --- fewer than this, and more will be created */
  
  #ifndef DEFAULT_MIN_FREE_DAEMON
  #define DEFAULT_MIN_FREE_DAEMON 5
  #endif
  
  /* Limit on the total --- clients will be locked out if more servers than
   * this are needed.  It is intended solely to keep the server from crashing
   * when things get out of hand.
   *
   * We keep a hard maximum number of servers, for two reasons --- first off,
   * in case something goes seriously wrong, we want to stop the fork bomb
   * short of actually crashing the machine we're running on by filling some
   * kernel table.  Secondly, it keeps the size of the scoreboard file small
   * enough that we can read the whole thing without worrying too much about
   * the overhead.
   */
  #ifndef HARD_SERVER_LIMIT
  #define HARD_SERVER_LIMIT 8 
  #endif
  
  /* Limit on the threads per process.  Clients will be locked out if more than
   * this  * HARD_SERVER_LIMIT are needed.
   *
   * We keep this for one reason it keeps the size of the scoreboard file small
   * enough that we can read the whole thing without worrying too much about
   * the overhead.
   */
  #ifndef HARD_THREAD_LIMIT
  #define HARD_THREAD_LIMIT 64 
  #endif
  
  #endif /* AP_MPM_DEFAULT_H */
  
  
  
  1.7       +6 -6      apache-2.0/mpm/src/modules/mpm/prefork/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/prefork/Makefile.tmpl,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -d -u -r1.6 -r1.7
  --- Makefile.tmpl	1999/07/13 20:32:50	1.6
  +++ Makefile.tmpl	1999/07/16 05:30:31	1.7
  @@ -59,12 +59,12 @@
    $(INCDIR)/ap_config.h $(INCDIR)/ap_mmn.h \
    $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h \
    $(OSDIR)/os-inline.c $(INCDIR)/ap_ctype.h \
  - $(INCDIR)/alloc.h $(INCDIR)/buff.h \
  - $(INCDIR)/ap_iol.h $(INCDIR)/ap.h \
  - $(INCDIR)/apr.h $(INCDIR)/util_uri.h \
  + $(INCDIR)/hsregex.h $(INCDIR)/alloc.h \
  + $(INCDIR)/buff.h $(INCDIR)/ap_iol.h \
  + $(INCDIR)/ap.h $(INCDIR)/apr.h \
  + $(INCDIR)/util_uri.h mpm_default.h \
    $(INCDIR)/http_main.h $(INCDIR)/http_log.h \
    $(INCDIR)/http_config.h $(INCDIR)/ap_hooks.h \
    $(INCDIR)/http_core.h $(INCDIR)/http_connection.h \
  - scoreboard.h $(INCDIR)/ap_mpm.h \
  - $(OSDIR)/unixd.h $(OSDIR)/iol_socket.h \
  - $(INCDIR)/ap_listen.h
  + scoreboard.h $(INCDIR)/ap_mpm.h $(OSDIR)/unixd.h \
  + $(OSDIR)/iol_socket.h $(INCDIR)/ap_listen.h
  
  
  
  1.12      +1 -0      apache-2.0/mpm/src/modules/mpm/prefork/prefork.c
  
  Index: prefork.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/prefork/prefork.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -d -u -r1.11 -r1.12
  --- prefork.c	1999/07/13 20:32:50	1.11
  +++ prefork.c	1999/07/16 05:30:31	1.12
  @@ -88,6 +88,7 @@
   #define CORE_PRIVATE
   
   #include "httpd.h"
  +#include "mpm_default.h"
   #include "http_main.h"
   #include "http_log.h"
   #include "http_config.h"
  
  
  
  1.1                  apache-2.0/mpm/src/modules/mpm/prefork/mpm_default.h
  
  Index: mpm_default.h
  ===================================================================
  /* ====================================================================
   * Copyright (c) 1995-1999 The Apache Group.  All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without 
   * modification, are permitted provided that the following conditions 
   * are met: 
   * 
   * 1. Redistributions of source code must retain the above copyright 
   *    notice, this list of conditions and the following disclaimer.  
   * 
   * 2. Redistributions in binary form must reproduce the above copyright 
   *    notice, this list of conditions and the following disclaimer in 
   *    the documentation and/or other materials provided with the 
   *    distribution. 
   * 
   * 3. All advertising materials mentioning features or use of this 
   *    software must display the following acknowledgment: 
   *    "This product includes software developed by the Apache Group 
   *    for use in the Apache HTTP server project (http://www.apache.org/)." 
   * 
   * 4. The names "Apache Server" and "Apache Group" must not be used to 
   *    endorse or promote products derived from this software without 
   *    prior written permission. For written permission, please contact 
   *    apache@apache.org. 
   * 
   * 5. Products derived from this software may not be called "Apache" 
   *    nor may "Apache" appear in their names without prior written 
   *    permission of the Apache Group. 
   * 
   * 6. Redistributions of any form whatsoever must retain the following 
   *    acknowledgment: 
   *    "This product includes software developed by the Apache Group 
   *    for use in the Apache HTTP server project (http://www.apache.org/)." 
   * 
   * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY 
   * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
   * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR 
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
   * OF THE POSSIBILITY OF SUCH DAMAGE. 
   * ==================================================================== 
   * 
   * This software consists of voluntary contributions made by many 
   * individuals on behalf of the Apache Group and was originally based 
   * on public domain software written at the National Center for 
   * Supercomputing Applications, University of Illinois, Urbana-Champaign. 
   * For more information on the Apache Group and the Apache HTTP server 
   * project, please see <http://www.apache.org/>. 
   * 
   */ 
  
  #ifndef APACHE_MPM_DEFAULT_H
  #define APACHE_MPM_DEFAULT_H
  
  /* Number of servers to spawn off by default --- also, if fewer than
   * this free when the caretaker checks, it will spawn more.
   */
  #ifndef DEFAULT_START_DAEMON
  #define DEFAULT_START_DAEMON 5
  #endif
  
  /* Maximum number of *free* server processes --- more than this, and
   * they will die off.
   */
  
  #ifndef DEFAULT_MAX_FREE_DAEMON
  #define DEFAULT_MAX_FREE_DAEMON 10
  #endif
  
  /* Minimum --- fewer than this, and more will be created */
  
  #ifndef DEFAULT_MIN_FREE_DAEMON
  #define DEFAULT_MIN_FREE_DAEMON 5
  #endif
  
  /* Limit on the total --- clients will be locked out if more servers than
   * this are needed.  It is intended solely to keep the server from crashing
   * when things get out of hand.
   *
   * We keep a hard maximum number of servers, for two reasons --- first off,
   * in case something goes seriously wrong, we want to stop the fork bomb
   * short of actually crashing the machine we're running on by filling some
   * kernel table.  Secondly, it keeps the size of the scoreboard file small
   * enough that we can read the whole thing without worrying too much about
   * the overhead.
   */
  #ifndef HARD_SERVER_LIMIT
  #define HARD_SERVER_LIMIT 256
  #endif
  
  #endif /* AP_MPM_DEFAULT_H */
  
  
  
  1.2       +1 -1      apache-2.0/mpm/src/modules/mpm/spmt_os2/Makefile.tmpl
  
  Index: Makefile.tmpl
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/spmt_os2/Makefile.tmpl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -d -u -r1.1 -r1.2
  --- Makefile.tmpl	1999/07/11 14:49:05	1.1
  +++ Makefile.tmpl	1999/07/16 05:30:33	1.2
  @@ -58,4 +58,4 @@
    $(INCDIR)/ap_hooks.h $(INCDIR)/http_core.h \
    $(INCDIR)/http_connection.h scoreboard.h \
    $(INCDIR)/ap_mpm.h $(INCDIR)/ap_listen.h \
  - $(OSDIR)/iol_socket.h
  + $(OSDIR)/iol_socket.h mpm_default.h
  
  
  
  1.4       +1 -0      apache-2.0/mpm/src/modules/mpm/spmt_os2/spmt_os2.c
  
  Index: spmt_os2.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/spmt_os2/spmt_os2.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -d -u -r1.3 -r1.4
  --- spmt_os2.c	1999/07/13 09:31:59	1.3
  +++ spmt_os2.c	1999/07/16 05:30:35	1.4
  @@ -60,6 +60,7 @@
   #define CORE_PRIVATE
   
   #include "httpd.h"
  +#include "mpm_default.h"
   #include "http_main.h"
   #include "http_log.h"
   #include "http_config.h"
  
  
  
  1.1                  apache-2.0/mpm/src/modules/mpm/spmt_os2/mpm_default.h
  
  Index: mpm_default.h
  ===================================================================
  /* ====================================================================
   * Copyright (c) 1995-1999 The Apache Group.  All rights reserved.
   * 
   * Redistribution and use in source and binary forms, with or without 
   * modification, are permitted provided that the following conditions 
   * are met: 
   * 
   * 1. Redistributions of source code must retain the above copyright 
   *    notice, this list of conditions and the following disclaimer.  
   * 
   * 2. Redistributions in binary form must reproduce the above copyright 
   *    notice, this list of conditions and the following disclaimer in 
   *    the documentation and/or other materials provided with the 
   *    distribution. 
   * 
   * 3. All advertising materials mentioning features or use of this 
   *    software must display the following acknowledgment: 
   *    "This product includes software developed by the Apache Group 
   *    for use in the Apache HTTP server project (http://www.apache.org/)." 
   * 
   * 4. The names "Apache Server" and "Apache Group" must not be used to 
   *    endorse or promote products derived from this software without 
   *    prior written permission. For written permission, please contact 
   *    apache@apache.org. 
   * 
   * 5. Products derived from this software may not be called "Apache" 
   *    nor may "Apache" appear in their names without prior written 
   *    permission of the Apache Group. 
   * 
   * 6. Redistributions of any form whatsoever must retain the following 
   *    acknowledgment: 
   *    "This product includes software developed by the Apache Group 
   *    for use in the Apache HTTP server project (http://www.apache.org/)." 
   * 
   * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY 
   * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
   * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR 
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 
   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 
   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
   * OF THE POSSIBILITY OF SUCH DAMAGE. 
   * ==================================================================== 
   * 
   * This software consists of voluntary contributions made by many 
   * individuals on behalf of the Apache Group and was originally based 
   * on public domain software written at the National Center for 
   * Supercomputing Applications, University of Illinois, Urbana-Champaign. 
   * For more information on the Apache Group and the Apache HTTP server 
   * project, please see <http://www.apache.org/>. 
   * 
   */ 
  
  #ifndef APACHE_MPM_DEFAULT_H
  #define APACHE_MPM_DEFAULT_H
  
  /* Number of servers to spawn off by default --- also, if fewer than
   * this free when the caretaker checks, it will spawn more.
   */
  #ifndef DEFAULT_START_DAEMON
  #define DEFAULT_START_DAEMON 5
  #endif
  
  /* Maximum number of *free* server processes --- more than this, and
   * they will die off.
   */
  
  #ifndef DEFAULT_MAX_FREE_DAEMON
  #define DEFAULT_MAX_FREE_DAEMON 10
  #endif
  
  /* Minimum --- fewer than this, and more will be created */
  
  #ifndef DEFAULT_MIN_FREE_DAEMON
  #define DEFAULT_MIN_FREE_DAEMON 5
  #endif
  
  /* Limit on the total --- clients will be locked out if more servers than
   * this are needed.  It is intended solely to keep the server from crashing
   * when things get out of hand.
   *
   * We keep a hard maximum number of servers, for two reasons --- first off,
   * in case something goes seriously wrong, we want to stop the fork bomb
   * short of actually crashing the machine we're running on by filling some
   * kernel table.  Secondly, it keeps the size of the scoreboard file small
   * enough that we can read the whole thing without worrying too much about
   * the overhead.
   */
  #ifndef HARD_SERVER_LIMIT
  #define HARD_SERVER_LIMIT 256
  #endif
  
  #endif /* AP_MPM_DEFAULT_H */