#include <static_mem_pool.h>
Inheritance diagram for static_mem_pool< _Sz, _Gid >:
Public Member Functions | |
void * | allocate () |
Allocates memory and returns its pointer. | |
void | deallocate (void *__ptr) |
Deallocates memory by putting the memory block into the pool. | |
virtual void | recycle () |
Recycles half of the free memory blocks in the memory pool to the system. | |
Static Public Member Functions | |
static static_mem_pool & | instance () |
Gets the instance of the static memory pool. | |
static static_mem_pool & | instance_known () |
Gets the known instance of the static memory pool. |
_Sz | size of elements in the static_mem_pool | |
_Gid | group id of a static_mem_pool: if it is negative, simultaneous accesses to this static_mem_pool will be protected from each other; otherwise no protection is given |
static static_mem_pool& static_mem_pool< _Sz, _Gid >::instance | ( | ) | [inline, static] |
Gets the instance of the static memory pool.
It will create the instance if it does not already exist. Generally this function is now not needed.
static static_mem_pool& static_mem_pool< _Sz, _Gid >::instance_known | ( | ) | [inline, static] |
Gets the known instance of the static memory pool.
The instance must already exist. Generally the static initializer of the template guarantees it.
void* static_mem_pool< _Sz, _Gid >::allocate | ( | ) | [inline] |
Allocates memory and returns its pointer.
The template will try to get it from the memory pool first, and request memory from the system if there is no free memory in the pool.
NULL
otherwise void static_mem_pool< _Sz, _Gid >::deallocate | ( | void * | __ptr | ) | [inline] |
Deallocates memory by putting the memory block into the pool.
__ptr | pointer to memory to be deallocated |
void static_mem_pool< _Sz, _Gid >::recycle | ( | ) | [virtual] |
Recycles half of the free memory blocks in the memory pool to the system.
It is called when a memory request to the system (in other instances of the static memory pool) fails.
Implements mem_pool_base.