| /* ==================================================================== |
| * The Apache Software License, Version 1.1 |
| * |
| * Copyright (c) 2000-2001 The Apache Software Foundation. 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. The end-user documentation included with the redistribution, |
| * if any, must include the following acknowledgment: |
| * "This product includes software developed by the |
| * Apache Software Foundation (http://www.apache.org/)." |
| * Alternately, this acknowledgment may appear in the software itself, |
| * if and wherever such third-party acknowledgments normally appear. |
| * |
| * 4. The names "Apache" and "Apache Software Foundation" 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 name, without prior written |
| * permission of the Apache Software Foundation. |
| * |
| * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more |
| * information on the Apache Software Foundation, please see |
| * <http://www.apache.org/>. |
| * |
| * Portions of this software are based upon public domain software |
| * originally written at the National Center for Supercomputing Applications, |
| * University of Illinois, Urbana-Champaign. |
| */ |
| |
| #ifndef APACHE_MPM_DEFAULT_H |
| #define APACHE_MPM_DEFAULT_H |
| |
| #define AP_ID_FROM_CHILD_THREAD(c, t) ((c * HARD_THREAD_LIMIT) + t) |
| #define AP_CHILD_THREAD_FROM_ID(i) (i / HARD_THREAD_LIMIT), (i % HARD_THREAD_LIMIT) |
| |
| /* Number of threads to spawn off by default --- also, if fewer than |
| * this free when the caretaker checks, it will spawn more. |
| */ |
| #ifndef DEFAULT_START_THREAD |
| #define DEFAULT_START_THREAD 5 |
| #endif |
| |
| /* Maximum number of *free* server threads --- more than this, and |
| * they will die off. |
| */ |
| |
| #ifndef DEFAULT_MAX_SPARE_THREAD |
| #define DEFAULT_MAX_SPARE_THREAD 10 |
| #endif |
| |
| /* Minimum --- fewer than this, and more will be created */ |
| |
| #ifndef DEFAULT_MIN_SPARE_THREAD |
| #define DEFAULT_MIN_SPARE_THREAD 5 |
| #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 |
| |
| /* Number of servers to spawn off by default |
| */ |
| #ifndef DEFAULT_NUM_DAEMON |
| #define DEFAULT_NUM_DAEMON 2 |
| #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 |
| |
| /* File used for accept locking, when we use a file */ |
| #ifndef DEFAULT_LOCKFILE |
| #define DEFAULT_LOCKFILE "logs/accept.lock" |
| #endif |
| |
| /* Scoreboard file, if there is one */ |
| #ifndef DEFAULT_SCOREBOARD |
| #define DEFAULT_SCOREBOARD "logs/apache_runtime_status" |
| #endif |
| |
| /* Where the main/parent process's pid is logged */ |
| #ifndef DEFAULT_PIDLOG |
| #define DEFAULT_PIDLOG "logs/httpd.pid" |
| #endif |
| |
| /* |
| * Interval, in microseconds, between scoreboard maintenance. |
| */ |
| #ifndef SCOREBOARD_MAINTENANCE_INTERVAL |
| #define SCOREBOARD_MAINTENANCE_INTERVAL 1000000 |
| #endif |
| |
| /* Number of requests to try to handle in a single process. If <= 0, |
| * the children don't die off. |
| */ |
| #ifndef DEFAULT_MAX_REQUESTS_PER_CHILD |
| #define DEFAULT_MAX_REQUESTS_PER_CHILD 10000 |
| #endif |
| |
| #endif /* AP_MPM_DEFAULT_H */ |