17#ifndef APR_THREAD_PROC_H
18#define APR_THREAD_PROC_H
31#if APR_HAVE_STRUCT_RLIMIT
33#include <sys/resource.h>
73#define APR_PROC_CHECK_EXIT(x) (x & APR_PROC_EXIT)
75#define APR_PROC_CHECK_SIGNALED(x) (x & APR_PROC_SIGNAL)
77#define APR_PROC_CHECK_CORE_DUMP(x) (x & APR_PROC_SIGNAL_CORE)
82#define APR_FULL_BLOCK 1
84#define APR_FULL_NONBLOCK 2
86#define APR_PARENT_BLOCK 3
88#define APR_CHILD_BLOCK 4
93#define APR_READ_BLOCK 3
95#define APR_WRITE_BLOCK 4
103#define APR_LIMIT_CPU 0
105#define APR_LIMIT_MEM 1
107#define APR_LIMIT_NPROC 2
109#define APR_LIMIT_NOFILE 3
115#define APR_OC_REASON_DEATH 0
117#define APR_OC_REASON_UNWRITABLE 1
118#define APR_OC_REASON_RESTART 2
122#define APR_OC_REASON_UNREGISTER 3
125#define APR_OC_REASON_LOST 4
127#define APR_OC_REASON_RUNNING 5
143#if APR_HAS_PROC_INVOKED || defined(DOXYGEN)
153#if defined(WIN32) || defined(DOXYGEN)
175 const char *description);
347 void (*
dest)(
void *),
505#if APR_HAVE_STRUCT_RLIMIT
692#define APR_PROC_DETACH_FOREGROUND 0
693#define APR_PROC_DETACH_DAEMONIZE 1
805#if (APR_HAVE_SIGWAIT || APR_HAVE_SIGSUSPEND) && !defined(OS2)
APR Process Locking Routines.
apr_bucket apr_bucket_brigade * a
apr_int32_t apr_fileperms_t
void const char apr_status_t(* cleanup)(void *))
apr_int32_t apr_int32_t on
apr_status_t() apr_perms_setfn_t(void *object, apr_fileperms_t perms, apr_uid_t uid, apr_gid_t gid)
apr_interval_time_t apr_pollcb_cb_t func
#define APR_POOL_DECLARE_ACCESSOR(type)
void *(APR_THREAD_FUNC * apr_thread_start_t)(apr_thread_t *, void *)
const char const char * password
int apr_exit_why_e apr_wait_how_e apr_pool_t * p
apr_int32_t apr_int32_t apr_int32_t err
apr_file_t apr_file_t * parent_out
apr_perms_setfn_t * perms_set_fn
const char const char *const const char *const apr_procattr_t * attr
void() apr_child_errfn_t(apr_pool_t *proc, apr_status_t err, const char *description)
void(*) void apr_file_t write_fd)
apr_child_errfn_t * errfn
apr_int32_t apr_int32_t out
const char const char *const const char *const apr_procattr_t apr_pool_t * pool
apr_proc_t apr_kill_conditions_e how
int apr_exit_why_e * exitwhy
apr_file_t apr_file_t * parent_in
const char const char *const * args
int apr_exit_why_e apr_wait_how_e waithow
void(* maintenance)(int reason, void *, int status)
apr_perms_setfn_t void * data
apr_file_t apr_file_t * parent_err
const char const char *const const char *const * env
APR_DECLARE(void) apr_proc_other_child_register(apr_proc_t *proc
apr_perms_setfn_t void apr_fileperms_t perms
apr_status_t apr_proc_detach(int daemonize)
apr_status_t apr_thread_exit(apr_thread_t *thd, apr_status_t retval)
apr_status_t apr_thread_join(apr_status_t *retval, apr_thread_t *thd)
apr_status_t apr_threadattr_detach_set(apr_threadattr_t *attr, apr_int32_t on)
apr_status_t apr_thread_data_set(void *data, const char *key, apr_status_t(*cleanup)(void *), apr_thread_t *thread)
apr_status_t apr_thread_data_get(void **data, const char *key, apr_thread_t *thread)
apr_status_t apr_threadattr_create(apr_threadattr_t **new, apr_pool_t *pool)
apr_status_t apr_thread_detach(apr_thread_t *thd)
apr_status_t apr_threadattr_detach_get(apr_threadattr_t *attr)
apr_status_t apr_thread_create(apr_thread_t **new, apr_threadattr_t *attr, apr_thread_start_t func, void *data, apr_pool_t *pool)
apr_status_t apr_threadkey_data_set(void *data, const char *key, apr_status_t(*cleanup)(void *), apr_threadkey_t *threadkey)
apr_status_t apr_threadkey_private_delete(apr_threadkey_t *key)
apr_status_t apr_threadkey_private_create(apr_threadkey_t **key, void(*dest)(void *), apr_pool_t *pool)
apr_status_t apr_threadkey_private_set(void *priv, apr_threadkey_t *key)
apr_status_t apr_threadkey_private_get(void **new, apr_threadkey_t *key)
apr_status_t apr_threadkey_data_get(void **data, const char *key, apr_threadkey_t *threadkey)
typedef HANDLE(WINAPI *apr_winapi_fpt_CreateToolhelp32Snapshot)(DWORD dwFlags