Grid Community Toolkit  6.2.1653033972 (tag: v6.2.20220524)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages

Memory Pool. More...


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

Detailed Description

Memory Pool.

The globus_memory abstraction implements a memory management pool for groups of same-sized data items.

Function Documentation

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_infoThe memory management datatype
node_sizeThe size of the memory to allocated with each pop.
node_countThe 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().