![]() |
![]() |
![]() |
NumCosmo Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
Synopsis
gpointer (*NcmMemoryPoolAlloc) (void
); struct NcmMemoryPool; struct NcmMemoryPoolSlice; NcmMemoryPool * ncm_memory_pool_new (NcmMemoryPoolAlloc mp_alloc
,GDestroyNotify mp_free
); void ncm_memory_pool_free (NcmMemoryPool *mp
,gboolean free_slices
); void ncm_memory_pool_set_min_size (NcmMemoryPool *mp
,gsize n
); gpointer ncm_memory_pool_get (NcmMemoryPool *mp
); void ncm_memory_pool_return (gpointer p
);
Details
struct NcmMemoryPoolSlice
struct NcmMemoryPoolSlice { gpointer p; _NCM_MUTEX_TYPE lock; NcmMemoryPool *mp; };
gpointer |
Pointer to the actual slice |
Mutex lock used by the pool | |
NcmMemoryPool * |
A back pointer to the pool |
ncm_memory_pool_new ()
NcmMemoryPool * ncm_memory_pool_new (NcmMemoryPoolAlloc mp_alloc
,GDestroyNotify mp_free
);
This function prepare a memory pool which allocate memory using mp_alloc and save it for future use, the memory must be returned to the pool using ncm_memory_pool_return. These functions are thread safe.
|
a NcmMemoryPoolAlloc, function used to alloc memory |
|
function used to free memory alloced by mp_alloc |
Returns : |
the memory pool NcmMemoryPool |
ncm_memory_pool_free ()
void ncm_memory_pool_free (NcmMemoryPool *mp
,gboolean free_slices
);
This function free the memory pool and also the slices if free_slices == TRUE and the pool was built with a free function
|
a NcmMemoryPool, memory pool to be freed |
|
if true and the pool was built with a free function, free the slices |
ncm_memory_pool_set_min_size ()
void ncm_memory_pool_set_min_size (NcmMemoryPool *mp
,gsize n
);
if n grater than number of slices then allocate new slices until n == slices.
|
a NcmMemoryPool |
|
minimun number of slices contained in mp |
ncm_memory_pool_get ()
gpointer ncm_memory_pool_get (NcmMemoryPool *mp
);
Search in the pool for a non used slice and return the first finded. If none allocate a new one add to the pool and return it.
|
a NcmMemoryPool |
Returns : |
a pointer to an unused NcmMemoryPoolSlice. [transfer full] |
ncm_memory_pool_return ()
void ncm_memory_pool_return (gpointer p
);
|
slice to be returned to the pool |
Returns : |
the slice pointed by slice to the pool |