Apache HTTPD
Macros | Typedefs | Functions | Variables
Resource List Routines

Macros

#define APR_RESLIST_CLEANUP_DEFAULT   0
 
#define APR_RESLIST_CLEANUP_FIRST   1
 

Typedefs

typedef struct apr_reslist_t apr_reslist_t
 
typedef apr_status_t(* apr_reslist_constructor) (void **resource, void *params, apr_pool_t *pool)
 
typedef apr_status_t(* apr_reslist_destructor) (void *resource, void *params, apr_pool_t *pool)
 

Functions

 APU_DECLARE (apr_status_t) apr_reslist_create(apr_reslist_t **reslist
 
 APU_DECLARE (void) apr_reslist_timeout_set(apr_reslist_t *reslist
 Computes SipHash-2-4, producing a 64bit (APR_SIPHASH_DSIZE) hash from a message and a 128bit (APR_SIPHASH_KSIZE) secret key, into a possibly unaligned buffer (using the little endian representation as defined by the authors for interoperabilty) usable as a MAC.
 
 APU_DECLARE (apr_uint32_t) apr_reslist_acquired_count(apr_reslist_t *reslist)
 

Variables

int min
 
int int smax
 
int int int hmax
 
int int int apr_interval_time_t ttl
 
int int int apr_interval_time_t apr_reslist_constructor con
 
int int int apr_interval_time_t apr_reslist_constructor apr_reslist_destructor de
 
int int int apr_interval_time_t apr_reslist_constructor apr_reslist_destructor void * params
 
int int int apr_interval_time_t apr_reslist_constructor apr_reslist_destructor void apr_pool_tpool
 
void ** resource
 
apr_interval_time_t timeout
 
apr_uint32_t mode
 

Detailed Description

Macro Definition Documentation

◆ APR_RESLIST_CLEANUP_DEFAULT

#define APR_RESLIST_CLEANUP_DEFAULT   0

default pool cleanup

Definition at line 63 of file apr_reslist.h.

◆ APR_RESLIST_CLEANUP_FIRST

#define APR_RESLIST_CLEANUP_FIRST   1

use pool pre cleanup

Definition at line 64 of file apr_reslist.h.

Typedef Documentation

◆ apr_reslist_constructor

typedef apr_status_t(* apr_reslist_constructor) (void **resource, void *params, apr_pool_t *pool)

Definition at line 50 of file apr_reslist.h.

◆ apr_reslist_destructor

typedef apr_status_t(* apr_reslist_destructor) (void *resource, void *params, apr_pool_t *pool)

Definition at line 59 of file apr_reslist.h.

◆ apr_reslist_t

Opaque resource list object

Definition at line 42 of file apr_reslist.h.

Function Documentation

◆ APU_DECLARE() [1/3]

APU_DECLARE ( apr_status_t  )

Create a new resource list with the following parameters:

Parameters
reslistAn address where the pointer to the new resource list will be stored.
minAllowed minimum number of available resources. Zero creates new resources only when needed.
smaxResources will be destroyed during reslist maintenance to meet this maximum restriction as they expire (reach their ttl).
hmaxAbsolute maximum limit on the number of total resources.
ttlIf non-zero, sets the maximum amount of time in microseconds an unused resource is valid. Any resource which has exceeded this time will be destroyed, either when encountered by apr_reslist_acquire() or during reslist maintenance.
conConstructor routine that is called to create a new resource.
deDestructor routine that is called to destroy an expired resource.
paramsPassed to constructor and deconstructor
poolThe pool from which to create this resource list. Also the same pool that is passed to the constructor and destructor routines.
Remarks
If APR has been compiled without thread support, hmax will be automatically set to 1 and values of min and smax will be forced to 1 for any non-zero value.

Destroy the given resource list and all resources controlled by this list. FIXME: Should this block until all resources become available, or maybe just destroy all the free ones, or maybe destroy them even though they might be in use by something else? Currently it will abort if there are resources that haven't been released, so there is an assumption that all resources have been released to the list before calling this function.

Parameters
reslistThe reslist to destroy

Retrieve a resource from the list, creating a new one if necessary. If we have met our maximum number of resources, we will block until one becomes available.

Parameters
reslistThe resource list.
resourceAn address where the pointer to the resource will be stored.

Return a resource back to the list of available resources.

Parameters
reslistThe resource list.
resourceThe resource to return to the list.

Invalidate a resource in the pool - e.g. a database connection that returns a "lost connection" error and can't be restored. Use this instead of apr_reslist_release if the resource is bad.

Parameters
reslistThe resource list.
resourceThe resource to invalidate.

Perform routine maintenance on the resource list. This call may instantiate new resources or expire old resources.

Parameters
reslistThe resource list.

< Shared lock. More than one process or thread can hold a shared lock at any given time. Essentially, this is a "read lock", preventing writers from establishing an exclusive lock.

< Shared lock. More than one process or thread can hold a shared lock at any given time. Essentially, this is a "read lock", preventing writers from establishing an exclusive lock.

< Exclusive lock. Only one process may hold an exclusive lock at any given time. This is analogous to a "write lock".

< Exclusive lock. Only one process may hold an exclusive lock at any given time. This is analogous to a "write lock".

< Replace

< Insert with duplicates

< Shared lock. More than one process or thread can hold a shared lock at any given time. Essentially, this is a "read lock", preventing writers from establishing an exclusive lock.

< Shared lock. More than one process or thread can hold a shared lock at any given time. Essentially, this is a "read lock", preventing writers from establishing an exclusive lock.

< mask to extract lock type

< Shared lock. More than one process or thread can hold a shared lock at any given time. Essentially, this is a "read lock", preventing writers from establishing an exclusive lock.

< Exclusive lock. Only one process may hold an exclusive lock at any given time. This is analogous to a "write lock".

< Exclusive lock. Only one process may hold an exclusive lock at any given time. This is analogous to a "write lock".

< Size of the file

< Shared lock. More than one process or thread can hold a shared lock at any given time. Essentially, this is a "read lock", preventing writers from establishing an exclusive lock.

< Exclusive lock. Only one process may hold an exclusive lock at any given time. This is analogous to a "write lock".

Definition at line 358 of file apr_brigade.c.

◆ APU_DECLARE() [2/3]

APU_DECLARE ( apr_uint32_t  )

Return the number of outstanding resources.

Parameters
reslistThe resource list.

Creates a crc32 hash used to split keys between servers

Parameters
mcThe memcache client object to use
dataData to be hashed
data_lenLength of the data to use
Returns
crc32 hash of data
Remarks
The crc32 hash is not compatible with old memcached clients.

Pure CRC32 Hash. Used by some clients.

hash compatible with the standard Perl Client.

Creates a crc32 hash used to split keys between servers

Parameters
rcThe redis client object to use
dataData to be hashed
data_lenLength of the data to use
Returns
crc32 hash of data
Remarks
The crc32 hash is not compatible with old redisd clients.

Pure CRC32 Hash. Used by some clients.

hash compatible with the standard Perl Client.

Definition at line 129 of file apr_memcache.c.

◆ APU_DECLARE() [3/3]

APU_DECLARE ( void  )

Computes SipHash-2-4, producing a 64bit (APR_SIPHASH_DSIZE) hash from a message and a 128bit (APR_SIPHASH_KSIZE) secret key, into a possibly unaligned buffer (using the little endian representation as defined by the authors for interoperabilty) usable as a MAC.

Set the timeout the acquire will wait for a free resource when the maximum number of resources is exceeded.

Parameters
reslistThe resource list.
timeoutTimeout to wait. The zero waits forever.

Set reslist cleanup order.

Parameters
reslistThe resource list.
modeCleanup order mode
          APR_RESLIST_CLEANUP_DEFAULT  default pool cleanup order
          APR_RESLIST_CLEANUP_FIRST    use pool pre cleanup
Remarks
If APR_RESLIST_CLEANUP_FIRST is used the destructors will be called before child pools of the pool used to create the reslist are destroyed. This allows to explicitly destroy the child pools inside reslist destructors.

< use pool pre cleanup

Definition at line 128 of file apr_sha1.c.

Variable Documentation

◆ con

Definition at line 92 of file apr_reslist.h.

◆ de

Definition at line 93 of file apr_reslist.h.

◆ hmax

int int int hmax

Definition at line 90 of file apr_reslist.h.

◆ min

int min

Definition at line 90 of file apr_reslist.h.

◆ mode

Definition at line 175 of file apr_reslist.h.

◆ params

Definition at line 94 of file apr_reslist.h.

◆ pool

Definition at line 95 of file apr_reslist.h.

◆ resource

void * resource

Definition at line 119 of file apr_reslist.h.

◆ smax

int int smax

Definition at line 90 of file apr_reslist.h.

◆ timeout

Definition at line 136 of file apr_reslist.h.

◆ ttl

Definition at line 91 of file apr_reslist.h.