r6.0.1:lfds601_freelist_pop

From liblfds.org
Jump to: navigation, search

Source Files

/liblfds601/src/lfds601_freelist/lfds601_freelist_pop_push.c
/liblfds601/inc/liblfds601.h

Prototype

struct lfds601_freelist_element *lfds601_freelist_pop( struct lfds601_freelist_state *fs, struct lfds601_freelist_element **fe );

Parameters

struct lfds601_freelist_state *fs

A freelist state as allocated by lfds601_freelist_new.

struct lfds601_freelist_element **fe

A pointer to a freelist element pointer which will be set to point to a struct freelist popped from the freelist. Set to NULL if the freelist is empty.

Return Value

Returns a pointer to the freelist element (e.g. the value *fe is set to). If the freelist is empty, the return value is NULL and *lfds601_freelist_element is set to NULL. In this case, the user can call, the caller can call lfds601_freelist_guaranteed_pop, which will allocate a new element, rather than popping from the freelist. Remember however that the freelist can never shrink, so any such call will permanently increase the size of the freelist by one element.

Notes

Popping returns to the user a freelist element. To obtain the user data void pointer from the element, use lfds601_freelist_get_user_data_from_element.

See Also