mpm_common.h revision d9b12166875edee8979f2bd4ad3927e4ed7fdc4b
* limitations under the License. /* The purpose of this file is to store the code that MOST mpm's will need * this does not mean a function only goes into this file if every MPM needs * it. It means that if a function is needed by more than one MPM, and * future maintenance would be served by making the code common, then the * This is going in src/main because it is not platform specific, it is * specific to multi-process servers, but NOT to Unix. Which is why it * @brief Multi-Processing Modules functions * @defgroup APACHE_MPM Multi-Processing Modules /* The maximum length of the queue of pending connections, as defined * by listen(2). Under some systems, it should be increased if you * are experiencing a heavy TCP SYN flood attack. * It defaults to 511 instead of 512 because some systems store it * as an 8-bit datatype; 512 truncated to 8-bits is 0, while 511 is /* Signal used to gracefully restart */ /* Signal used to gracefully restart (without SIG prefix) */ /* Signal used to gracefully restart (as a quoted string) */ /* Signal used to gracefully stop */ /* Signal used to gracefully stop (without SIG prefix) */ /* Signal used to gracefully stop (as a quoted string) */ * Make sure all child processes that have been spawned by the parent process * have died. This includes process registered as "other_children". * @warning This is only defined if the MPM defines * AP_MPM_WANT_RECLAIM_CHILD_PROCESSES * @param terminate Either 1 or 0. If 1, send the child processes SIGTERM * each time through the loop. If 0, give the process time to die * on its own before signalling it. * @tip This function requires that some macros are defined by the MPM: <pre> * MPM_CHILD_PID -- Get the pid from the specified spot in the scoreboard * MPM_NOTE_CHILD_KILLED -- Note the child died in the scoreboard * @tip The MPM child processes which are reclaimed are those listed * in the scoreboard as well as those currently registered via * ap_register_extra_mpm_process(). * Catch any child processes that have been spawned by the parent process * which have exited. This includes processes registered as "other_children". * @warning This is only defined if the MPM defines * AP_MPM_WANT_RECLAIM_CHILD_PROCESSES * @tip This function requires that some macros are defined by the MPM: <pre> * MPM_CHILD_PID -- Get the pid from the specified spot in the scoreboard * MPM_NOTE_CHILD_KILLED -- Note the child died in the scoreboard * @tip The MPM child processes which are relieved are those listed * in the scoreboard as well as those currently registered via * ap_register_extra_mpm_process(). * Tell ap_reclaim_child_processes() and ap_relieve_child_processes() about * an MPM child process which has no entry in the scoreboard. * @warning This is only defined if the MPM defines * AP_MPM_WANT_RECLAIM_CHILD_PROCESSES * @param pid The process id of an MPM child process which should be * reclaimed when ap_reclaim_child_processes() is called. * @tip If an extra MPM child process terminates prior to calling * ap_reclaim_child_processes(), remove it from the list of such processes * by calling ap_unregister_extra_mpm_process(). * Unregister an MPM child process which was previously registered by a * call to ap_register_extra_mpm_process(). * @warning This is only defined if the MPM defines * AP_MPM_WANT_RECLAIM_CHILD_PROCESSES * @param pid The process id of an MPM child process which no longer needs to * @return 1 if the process was found and removed, 0 otherwise * Determine if any child process has died. If no child process died, then * this process sleeps for the amount of time specified by the MPM defined * macro SCOREBOARD_MAINTENANCE_INTERVAL. * @param status The return code if a process has died * @param ret The process id of the process that died * @param p The pool to allocate out of * Log why a child died to the error log, if the child died without the * @param pid The child that has died * @param status The status returned from ap_wait_or_timeout * @return 0 on success, APEXIT_CHILDFATAL if MPM should terminate * Turn off the nagle algorithm for the specified socket. The nagle algorithm * says that we should delay sending partial packets in the hopes of getting * more data. There are bad interactions between persistent connections and * Nagle's algorithm that have severe performance penalties. * @param s The socket to disable nagle for. * Convert a username to a numeric ID * @param name The name to convert * @return The user id corresponding to a name * @deffunc uid_t ap_uname2id(const char *name) * Convert a group name to a numeric ID * @param name The name to convert * @return The group id corresponding to a name * @deffunc gid_t ap_gname2id(const char *name) * Open the pipe-of-death. The pipe of death is used to tell all child * processes that it is time to die gracefully. * @param p The pool to use for allocating the pipe * Check the pipe to determine if the process has been signalled to die. * Close the pipe-of-death * Write data to the pipe-of-death, signalling that one child process * @param p The pool to use when allocating any required structures. * Write data to the pipe-of-death, signalling that all child process * @param p The pool to use when allocating any required structures. * @param num The number of child processes to kill * These data members are common to all mpms. Each new mpm * should either use the appropriate ap_mpm_set_* function * in their command table or create their own for custom or * OS specific needs. These should work for most. * The maximum number of requests each child thread or * process handles before dying off * The filename used to store the process id. * The name of lockfile used when Apache needs to lock the accept() call. * The system mutex implementation to use for the accept mutex. * Set the scorboard file. * The directory that the server changes directory to dump core. * Set the timeout period for a graceful shutdown. RSRC_CONF,
"Maximum time in seconds to wait for child " \
"processes to complete transactions during shutdown")
#
endif /* !APACHE_MPM_COMMON_H */