apr_pool_t

專案位置:apr

檔案位置:srclib\apr\memory\unix\apr_pools.c

目的:The fundamental pool type for APR memory allocation

struct apr_pool_t {

apr_pool_t *parent;

apr_pool_t *child;

apr_pool_t *sibling;

apr_pool_t **ref;

cleanup_t *cleanups;

cleanup_t *free_cleanups;

apr_allocator_t *allocator;

struct process_chain *subprocesses;

apr_abortfunc_t abort_fn;

apr_hash_t *user_data;

const char *tag;

#if !APR_POOL_DEBUG

apr_memnode_t *active;

apr_memnode_t *self; /* The node containing the pool itself */

char *self_first_avail;

#else /* APR_POOL_DEBUG */

apr_pool_t *joined; /* the caller has guaranteed that this pool

* will survive as long as ->joined */

debug_node_t *nodes;

const char *file_line;

apr_uint32_t creation_flags;

unsigned int stat_alloc;

unsigned int stat_total_alloc;

unsigned int stat_clear;

#if APR_HAS_THREADS

apr_os_thread_t owner;

apr_thread_mutex_t *mutex;

#endif /* APR_HAS_THREADS */

#endif /* APR_POOL_DEBUG */

#ifdef NETWARE

apr_os_proc_t owner_proc;

#endif /* defined(NETWARE) */

cleanup_t *pre_cleanups;

cleanup_t *free_pre_cleanups;

};