Apache Portable Runtime
Data Structures | Defines | Typedefs | Functions
Internal Memory Allocation
Apache Portability Runtime library

Data Structures

struct  apr_memnode_t

Defines

#define APR_MEMNODE_T_SIZE   APR_ALIGN_DEFAULT(sizeof(apr_memnode_t))
#define APR_ALLOCATOR_MAX_FREE_UNLIMITED   0

Typedefs

typedef struct apr_allocator_t apr_allocator_t
typedef struct apr_memnode_t apr_memnode_t

Functions

apr_status_t apr_allocator_create (apr_allocator_t **allocator)
void apr_allocator_destroy (apr_allocator_t *allocator)
apr_memnode_tapr_allocator_alloc (apr_allocator_t *allocator, apr_size_t size)
void apr_allocator_free (apr_allocator_t *allocator, apr_memnode_t *memnode)
void apr_allocator_owner_set (apr_allocator_t *allocator, apr_pool_t *pool)
apr_pool_tapr_allocator_owner_get (apr_allocator_t *allocator)
void apr_allocator_max_free_set (apr_allocator_t *allocator, apr_size_t size)
void apr_allocator_mutex_set (apr_allocator_t *allocator, apr_thread_mutex_t *mutex)
apr_thread_mutex_tapr_allocator_mutex_get (apr_allocator_t *allocator)

Define Documentation

#define APR_ALLOCATOR_MAX_FREE_UNLIMITED   0

Symbolic constants

#define APR_MEMNODE_T_SIZE   APR_ALIGN_DEFAULT(sizeof(apr_memnode_t))

The base size of a memory node - aligned.


Typedef Documentation

the allocator structure

typedef struct apr_memnode_t apr_memnode_t

the structure which holds information about the allocation


Function Documentation

apr_memnode_t* apr_allocator_alloc ( apr_allocator_t allocator,
apr_size_t  size 
)

Allocate a block of mem from the allocator

Parameters:
allocatorThe allocator to allocate from
sizeThe size of the mem to allocate (excluding the memnode structure)
apr_status_t apr_allocator_create ( apr_allocator_t **  allocator)

Create a new allocator

Parameters:
allocatorThe allocator we have just created.
void apr_allocator_destroy ( apr_allocator_t allocator)

Destroy an allocator

Parameters:
allocatorThe allocator to be destroyed
Remarks:
Any memnodes not given back to the allocator prior to destroying will _not_ be free()d.
void apr_allocator_free ( apr_allocator_t allocator,
apr_memnode_t memnode 
)

Free a list of blocks of mem, giving them back to the allocator. The list is typically terminated by a memnode with its next field set to NULL.

Parameters:
allocatorThe allocator to give the mem back to
memnodeThe memory node to return
void apr_allocator_max_free_set ( apr_allocator_t allocator,
apr_size_t  size 
)

Set the current threshold at which the allocator should start giving blocks back to the system.

Parameters:
allocatorThe allocator the set the threshold on
sizeThe threshold. 0 == unlimited.
apr_thread_mutex_t* apr_allocator_mutex_get ( apr_allocator_t allocator)

Get the mutex currently set for the allocator

Parameters:
allocatorThe allocator
void apr_allocator_mutex_set ( apr_allocator_t allocator,
apr_thread_mutex_t mutex 
)

Set a mutex for the allocator to use

Parameters:
allocatorThe allocator to set the mutex for
mutexThe mutex
apr_pool_t* apr_allocator_owner_get ( apr_allocator_t allocator)

Get the current owner of the allocator

Parameters:
allocatorThe allocator to get the owner from
void apr_allocator_owner_set ( apr_allocator_t allocator,
apr_pool_t pool 
)

Set the owner of the allocator

Parameters:
allocatorThe allocator to set the owner for
poolThe pool that is to own the allocator
Remarks:
Typically pool is the highest level pool using the allocator
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines