Apache HTTPD
Classes | Macros | Functions | Variables
mpmt_os2_child.c File Reference
#include "ap_config.h"
#include "httpd.h"
#include "mpm_default.h"
#include "http_main.h"
#include "http_log.h"
#include "http_config.h"
#include "http_core.h"
#include "http_connection.h"
#include "scoreboard.h"
#include "ap_mpm.h"
#include "ap_listen.h"
#include "apr_portable.h"
#include "apr_poll.h"
#include "mpm_common.h"
#include "apr_strings.h"
#include <os2.h>
#include <process.h>

Go to the source code of this file.

Classes

struct  worker_args_t
 

Macros

#define INCL_NOPMAPI
 
#define INCL_DOS
 
#define INCL_DOSERRORS
 
#define HARD_SERVER_LIMIT   10
 
#define HARD_THREAD_LIMIT   256
 
#define ID_FROM_CHILD_THREAD(c, t)   ((c * HARD_THREAD_LIMIT) + t)
 
#define WORKTYPE_CONN   0
 
#define WORKTYPE_EXIT   1
 

Functions

static void worker_main (void *vpArg)
 
static void clean_child_exit (int code)
 
static void set_signals ()
 
static void server_maintenance (void *vpArg)
 
void ap_mpm_child_main (apr_pool_t *pconf)
 
void add_worker ()
 
ULONG APIENTRY thread_exception_handler (EXCEPTIONREPORTRECORD *pReportRec, EXCEPTIONREGISTRATIONRECORD *pRegRec, CONTEXTRECORD *pContext, PVOID p)
 
static void sig_term (int sig)
 
static void sig_hup (int sig)
 

Variables

static int *const aplog_module_index = &( mpm_mpmt_os2_module.module_index)
 
static apr_pool_tpchild = NULL
 
static int child_slot
 
static int shutdown_pending = 0
 
int ap_my_generation
 
static int volatile is_graceful = 1
 
HEV shutdown_event
 
int ap_min_spare_threads
 
int ap_max_spare_threads
 
HMTX ap_mpm_accept_mutex
 

Macro Definition Documentation

◆ HARD_SERVER_LIMIT

#define HARD_SERVER_LIMIT   10

Definition at line 46 of file mpmt_os2_child.c.

◆ HARD_THREAD_LIMIT

#define HARD_THREAD_LIMIT   256

Definition at line 51 of file mpmt_os2_child.c.

◆ ID_FROM_CHILD_THREAD

#define ID_FROM_CHILD_THREAD (   c,
  t 
)    ((c * HARD_THREAD_LIMIT) + t)

Definition at line 54 of file mpmt_os2_child.c.

◆ INCL_DOS

#define INCL_DOS

Definition at line 18 of file mpmt_os2_child.c.

◆ INCL_DOSERRORS

#define INCL_DOSERRORS

Definition at line 19 of file mpmt_os2_child.c.

◆ INCL_NOPMAPI

#define INCL_NOPMAPI

Definition at line 17 of file mpmt_os2_child.c.

◆ WORKTYPE_CONN

#define WORKTYPE_CONN   0

Definition at line 61 of file mpmt_os2_child.c.

◆ WORKTYPE_EXIT

#define WORKTYPE_EXIT   1

Definition at line 62 of file mpmt_os2_child.c.

Function Documentation

◆ add_worker()

void add_worker ( )

Definition at line 293 of file mpmt_os2_child.c.

◆ ap_mpm_child_main()

void ap_mpm_child_main ( apr_pool_t pconf)

< Can read without blocking

Definition at line 93 of file mpmt_os2_child.c.

◆ clean_child_exit()

static void clean_child_exit ( int  code)
static

Definition at line 82 of file mpmt_os2_child.c.

◆ server_maintenance()

static void server_maintenance ( void *  vpArg)
static

Definition at line 416 of file mpmt_os2_child.c.

◆ set_signals()

static void set_signals ( void  )
static

Definition at line 475 of file mpmt_os2_child.c.

◆ sig_hup()

static void sig_hup ( int  sig)
static

Definition at line 467 of file mpmt_os2_child.c.

◆ sig_term()

static void sig_term ( int  sig)
static

Definition at line 458 of file mpmt_os2_child.c.

◆ thread_exception_handler()

ULONG APIENTRY thread_exception_handler ( EXCEPTIONREPORTRECORD pReportRec,
EXCEPTIONREGISTRATIONRECORD pRegRec,
CONTEXTRECORD pContext,
PVOID  p 
)

Definition at line 311 of file mpmt_os2_child.c.

◆ worker_main()

static void worker_main ( void *  vpArg)
static

Definition at line 345 of file mpmt_os2_child.c.

Variable Documentation

◆ ap_max_spare_threads

int ap_max_spare_threads
extern

Definition at line 79 of file mpmt_os2.c.

◆ ap_min_spare_threads

int ap_min_spare_threads
extern

Definition at line 78 of file mpmt_os2.c.

◆ ap_mpm_accept_mutex

HMTX ap_mpm_accept_mutex
extern

Definition at line 90 of file mpmt_os2.c.

◆ ap_my_generation

int ap_my_generation
extern

Definition at line 88 of file mpmt_os2.c.

◆ aplog_module_index

int* const aplog_module_index = &( mpm_mpmt_os2_module.module_index)
static

Definition at line 39 of file mpmt_os2_child.c.

◆ child_slot

int child_slot
static

Definition at line 65 of file mpmt_os2_child.c.

◆ is_graceful

int volatile is_graceful = 1
static

Definition at line 68 of file mpmt_os2_child.c.

◆ pchild

apr_pool_t* pchild = NULL
static

Definition at line 64 of file mpmt_os2_child.c.

◆ shutdown_event

HEV shutdown_event

Definition at line 69 of file mpmt_os2_child.c.

◆ shutdown_pending

int shutdown_pending = 0
static

Definition at line 66 of file mpmt_os2_child.c.