Grid Community Toolkit
6.2.1653033972 (tag: v6.2.20220524)
|
Memory Pool. More...
Functions | |
globus_bool_t | globus_memory_init (globus_memory_t *mem_info, int node_size, int node_count) |
Initialize memory pool. More... | |
void * | globus_memory_pop_node (globus_memory_t *mem_info) |
Retrieve a memory item from a pool. More... | |
globus_bool_t | globus_memory_push_node (globus_memory_t *mem_info, void *buffer) |
Return a memory item to the pool. More... | |
globus_bool_t | globus_memory_destroy (globus_memory_t *mem_info) |
Destroy a memory pool. More... | |
Memory Pool.
The globus_memory abstraction implements a memory management pool for groups of same-sized data items.
globus_bool_t globus_memory_destroy | ( | globus_memory_t * | mem_info | ) |
Destroy a memory pool.
Free all the memory associated with the memory management structure. For every call to globus_memory_init() there should be a call to globus_memory_destroy() or else memory will leak.
globus_bool_t globus_memory_init | ( | globus_memory_t * | mem_info, |
int | node_size, | ||
int | node_count | ||
) |
Initialize memory pool.
Initialize the globus memory management structure.
Before using any functions associate with a memory structure this function must be called.
mem_info | The memory management datatype |
node_size | The size of the memory to allocated with each pop. |
node_count | The initial number of nodes allocated with the memory management structure. If it is exceeded more will be allocated. |
void* globus_memory_pop_node | ( | globus_memory_t * | mem_info | ) |
Retrieve a memory item from a pool.
Pop a chunk of memory out of the memory management structure. Similar to malloc(). When no longer using this item, return it to the pool via globus_memory_push_node().
globus_bool_t globus_memory_push_node | ( | globus_memory_t * | mem_info, |
void * | buffer | ||
) |
Return a memory item to the pool.
Push a chunk of memory back into the memory management structure. Similar to free().