19#include "apr_arch_threadproc.h"
24#include "apr_arch_file_io.h"
37 (*new)->stacksize = 0;
59 attr->stacksize = stacksize;
113 if (thread->
tid < 0) {
127 return ptib->tib_ptib2->tib2_ultid;
#define _beginthread(fn, d, pv)
APR Miscellaneous library routines.
APR general purpose library routines.
APR Portability Routines.
APR Thread and Process Library.
static apr_status_t thread_once_cleanup(void *vcontrol)
int apr_os_thread_equal(apr_os_thread_t tid1, apr_os_thread_t tid2)
const void apr_status_t(*) apr_status_t(* APR_DECLARE)(void) apr_pool_pre_cleanup_register(apr_pool_t *p
const char int apr_pool_t * pool
#define APR_FROM_OS_ERROR(e)
void const char apr_status_t(* cleanup)(void *))
apr_int32_t apr_int32_t on
apr_interval_time_t apr_pollcb_cb_t func
#define APR_POOL_IMPLEMENT_ACCESSOR(type)
#define apr_pool_create(newpool, parent)
#define apr_pcalloc(p, size)
void *(APR_THREAD_FUNC * apr_thread_start_t)(apr_thread_t *, void *)
const char const char *const const char *const apr_procattr_t * attr
apr_status_t apr_thread_exit(apr_thread_t *thd, apr_status_t retval)
apr_os_thread_t apr_os_thread_current()
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)
#define APR_THREAD_STACKSIZE
#define APR_THREADATTR_DETACHED
static void apr_thread_begin(void *arg)
struct apr_threadattr_t * attr