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.

Allowed minimum number of available resources. Zero creates new resources only when needed.

smax

Resources will be destroyed during reslist maintenance to meet this maximum restriction as they expire (reach their ttl).

hmax

Absolute maximum limit on the number of total resources.

ttl

If 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.

con

Constructor routine that is called to create a new resource.

de

Destructor routine that is called to destroy an expired resource.

params

Passed to constructor and deconstructor

pool

The 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.