ec_cache_create2
Name
ec_cache_create2 — Create a cache with max_elts
Synopsis
#include "ec_cache.h"
| ec_cache_t * **ec_cache_create2** ( | max_elts, | |
| | max_lifetime, | |
| | dtor, | |
| | name); | |
unsigned int <var class="pdparam">max_elts</var>;
unsigned int <var class="pdparam">max_lifetime</var>;
ec_cache_elt_dtor_func <var class="pdparam">dtor</var>;
const char * <var class="pdparam">name</var>;
Description
Create a cache with max_elts.
- max_elts
-
The maximum number of elements that can be kept in the cache. If that number is exceeded, then the least recently used (LRU) element will be removed from the cache.
- max_lifetime
-
Specifies a time-to-live (TTL) in seconds for the cache element. If
max_lifetimeis not given the valueEC_CACHE_LIFETIME_INFINITE, then it specifies a time-to-live in seconds after which the entry will be removed from the cache. Otherwise, the TTL will be ignored. If using the cache in per-item-ttl mode, thenmax_lifetimeis actually a number of additional seconds beyond the ttl for which an element will not be removed. - dtor
-
Specifies a function that will be called when the refcount of an item becomes zero. The following typedef applies to this data type:
typedef void (*ec_cache_elt_dtor_func)(void *value);. - name
-
Specify a cache name for the cache. If
nameis not NULL, then the name can be used to globally identify the cache for introspection purposes.
Returns the address of an ec_cache_t type. The following typedef applies to this data type:
typedef struct ec_cache_head ec_cache_t;.
While it is legal to call this function in any thread, it should only be called in the Scheduler thread.