std1.0.0-beta-7 SafeC docs

std :: collections::node_pool

Struct std::NodePool

#include <std/collections/node_pool.h> source

generic<N> struct NodePool {
    ?&heap unsigned char chunks;
    ?&heap unsigned char bump;
    unsigned long bump_left;
    ?&heap unsigned char free_list;
    unsigned long next_chunk;
}

Fields

§?&heap unsigned char chunkssource

chunk list; first word of each chunk links the next

§?&heap unsigned char bumpsource

next uncarved node in the newest chunk

§unsigned long bump_leftsource

nodes left to carve there

§?&heap unsigned char free_listsource

recycled nodes; first word links the next

§unsigned long next_chunksource

node count of the next chunk

Methods

§?&heap N take()source · definition

uninitialised node; null on OOM

§void give(&heap N node)source · definition

return a node for reuse

§void free_all()source · definition

release every chunk (all nodes)

§static struct NodePool<N> new()source · definition

empty; first chunk allocated on the first take()