46#define HARD_SERVER_LIMIT 10
50#ifndef HARD_THREAD_LIMIT
51#define HARD_THREAD_LIMIT 256
54#define ID_FROM_CHILD_THREAD(c, t) ((c * HARD_THREAD_LIMIT) + t)
61#define WORKTYPE_CONN 0
62#define WORKTYPE_EXIT 1
122 "unable to create shutdown semaphore, exiting");
132 "scoreboard not readable in child, exiting");
144 "accept mutex couldn't be accessed in child, exiting");
153 "child pid not found in scoreboard, exiting");
167 "unable to create work queue, exiting");
241 "apr_socket_accept");
325 "caught exception in worker thread, initiating child shutdown pid=%d",
getpid());
376 "unable to open work queue, exiting");
430 "unable to open work queue in maintenance thread");
Symbol export macros and hook functions.
Apache Listeners Library.
Apache Multi-Processing Module library.
const char apr_size_t len
#define _beginthread(fn, d, pv)
APR Portability Routines.
void ap_process_connection(conn_rec *c, void *csd)
void ap_lingering_close(conn_rec *c)
conn_rec * ap_run_create_connection(apr_pool_t *p, server_rec *server, apr_socket_t *csd, long conn_id, void *sbh, apr_bucket_alloc_t *alloc)
static apr_pool_t * pconf
#define APLOG_USE_MODULE(foo)
void ap_run_child_init(apr_pool_t *pchild, server_rec *s)
#define APEXIT_CHILDFATAL
ap_listen_rec * ap_listeners
server_rec * ap_server_conf
int ap_max_requests_per_child
apr_size_t ap_thread_stacksize
apr_uint32_t ap_max_mem_free
#define APR_STATUS_IS_EINTR(s)
#define APR_FROM_OS_ERROR(e)
apr_vformatter_buff_t * c
apr_abortfunc_t apr_allocator_t * allocator
#define apr_pool_create(newpool, parent)
Apache connection library.
Multi-Processing Modules functions.
static void sig_term(int sig)
static void server_maintenance(void *vpArg)
static apr_pool_t * pchild
#define HARD_SERVER_LIMIT
static void sig_hup(int sig)
ULONG APIENTRY thread_exception_handler(EXCEPTIONREPORTRECORD *pReportRec, EXCEPTIONREGISTRATIONRECORD *pRegRec, CONTEXTRECORD *pContext, PVOID p)
static int shutdown_pending
void ap_mpm_child_main(apr_pool_t *pconf)
static void clean_child_exit(int code)
#define ID_FROM_CHILD_THREAD(c, t)
static int volatile is_graceful
#define HARD_THREAD_LIMIT
static void set_signals()
static void worker_main(void *vpArg)
apr_os_thread_t apr_os_thread_current()
static int requests_this_child
Apache scoreboard library.
void ap_create_sb_handle(ap_sb_handle_t **new_sbh, apr_pool_t *p, int child_num, int thread_num)
scoreboard * ap_scoreboard_image
const char * ap_scoreboard_fname
void ap_init_scoreboard(void *shared_score)
int ap_calc_scoreboard_size(void)
int ap_update_child_status_from_indexes(int child_num, int thread_num, int status, request_rec *r)
Apache's listeners record.
Structure to store things which are per connection.
ap_generation_t running_generation
ap_generation_t generation
static apr_pollset_t * pollset
apr_status_t apr_socket_accept(apr_socket_t **new, apr_socket_t *sock, apr_pool_t *connection_context)
typedef int(WSAAPI *apr_winapi_fpt_WSAPoll)(IN OUT LPWSAPOLLFD fdArray