37#ifndef APACHE_MPM_COMMON_H
38#define APACHE_MPM_COMMON_H
44#if APR_HAVE_NETINET_TCP_H
45#include <netinet/tcp.h>
62#ifndef DEFAULT_LISTENBACKLOG
63#define DEFAULT_LISTENBACKLOG 511
67#define AP_SIG_GRACEFUL SIGUSR1
70#define AP_SIG_GRACEFUL_SHORT USR1
73#define AP_SIG_GRACEFUL_STRING "SIGUSR1"
76#define AP_SIG_GRACEFUL_STOP SIGWINCH
79#define AP_SIG_GRACEFUL_STOP_SHORT WINCH
82#define AP_SIG_GRACEFUL_STOP_STRING "SIGWINCH"
92#if (!defined(WIN32) && !defined(NETWARE)) || defined(DOXYGEN)
190#if defined(TCP_NODELAY)
200#define ap_sock_disable_nagle(s)
223#ifndef HAVE_INITGROUPS
236#if (!defined(WIN32) && !defined(NETWARE)) || defined(DOXYGEN)
281#define AP_MPM_PODX_RESTART_CHAR '$'
282#define AP_MPM_PODX_GRACEFUL_CHAR '!'
369#define AP_GRACEFUL_SHUTDOWN_TIMEOUT_COMMAND \
370AP_INIT_TAKE1("GracefulShutdownTimeout", ap_mpm_set_graceful_shutdown, NULL, \
371 RSRC_CONF, "Maximum time in seconds to wait for child " \
372 "processes to complete transactions during shutdown")
390#if defined(AP_ENABLE_EXCEPTION_HOOK) && AP_ENABLE_EXCEPTION_HOOK
467#define AP_ACCEPT_MUTEX_TYPE "mpm-accept"
Symbol export macros and hook functions.
#define AP_DECLARE_HOOK(ret, name, args)
Apache Multi-Processing Module library.
APR Process Locking Routines.
static apr_pool_t * pconf
void() ap_mpm_callback_fn_t(void *baton)
ap_vhost_iterate_conn_cb void * baton
void ap_wait_or_timeout(apr_exit_why_e *status, int *exitcode, apr_proc_t *ret, apr_pool_t *p, server_rec *s)
const char * ap_pid_fname
char ap_coredump_dir[8192]
void mpm_common_pre_config(apr_pool_t *pconf)
void ap_mpm_rewrite_args(process_rec *)
apr_status_t ap_mpm_safe_kill(pid_t pid, int sig)
int ap_sys_privileges_handlers(int inc)
const char * ap_check_mpm(void)
apr_status_t ap_mpm_pod_open(apr_pool_t *p, ap_pod_t **pod)
int ap_max_requests_per_child
apr_status_t ap_mpm_pod_close(ap_pod_t *pod)
apr_status_t ap_mpm_pod_signal(ap_pod_t *pod)
int ap_unregister_extra_mpm_process(pid_t pid, ap_generation_t *old_gen)
const char * ap_mpm_set_pidfile(cmd_parms *cmd, void *dummy, const char *arg)
const char * ap_mpm_set_graceful_shutdown(cmd_parms *cmd, void *dummy, const char *arg)
int ap_coredumpdir_configured
const char * ap_mpm_set_coredumpdir(cmd_parms *cmd, void *dummy, const char *arg)
int ap_signal_server(int *, apr_pool_t *)
void ap_relieve_child_processes(ap_reclaim_callback_fn_t *mpm_callback)
int ap_graceful_shutdown_timeout
int ap_process_child_status(apr_proc_t *pid, apr_exit_why_e why, int status)
void ap_reclaim_child_processes(int terminate, ap_reclaim_callback_fn_t *mpm_callback)
#define ap_sock_disable_nagle(s)
apr_status_t ap_fatal_signal_child_setup(server_rec *s)
void ap_mpm_pod_killpg(ap_pod_t *pod, int num)
void ap_reclaim_callback_fn_t(int childnum, pid_t pid, ap_generation_t gen)
int initgroups(const char *name, gid_t basegid)
void ap_mpm_podx_killpg(ap_pod_t *pod, int num, ap_podx_restart_t graceful)
apr_size_t ap_thread_stacksize
void ap_mpm_dump_pidfile(apr_pool_t *p, apr_file_t *out)
void ap_register_extra_mpm_process(pid_t pid, ap_generation_t gen)
void ap_core_child_status(server_rec *s, pid_t pid, ap_generation_t gen, int slot, mpm_child_status status)
apr_uint32_t ap_max_mem_free
apr_status_t ap_fatal_signal_setup(server_rec *s, apr_pool_t *in_pconf)
int ap_mpm_podx_check(ap_pod_t *pod)
apr_status_t ap_mpm_podx_signal(ap_pod_t *pod, ap_podx_restart_t graceful)
apr_status_t ap_mpm_podx_close(ap_pod_t *pod)
const char * ap_mpm_set_max_requests(cmd_parms *cmd, void *dummy, const char *arg)
apr_status_t ap_mpm_end_gen_helper(void *unused)
const char * ap_mpm_set_thread_stacksize(cmd_parms *cmd, void *dummy, const char *arg)
apr_status_t ap_mpm_pod_check(ap_pod_t *pod)
apr_status_t ap_mpm_podx_open(apr_pool_t *p, ap_pod_t **pod)
const char * ap_mpm_set_max_mem_free(cmd_parms *cmd, void *dummy, const char *arg)
const char apr_int32_t inc
apr_array_header_t ** result
apr_vformatter_buff_t * c
apr_interval_time_t apr_int32_t * num
static apr_pool_t * pchild
Apache scoreboard library.
Structure to store things which are per connection.
A structure that represents one process.
A structure that represents the current request.
A structure to store information for each virtual server.