| parrotcode: Handling Small Object Pools | |
| Contents | C |

src/gc/resources.c - Handling Small Object Pools

Handles the accessing of small object pools (header pools).

PARROT_WARN_UNUSED_RESULT INTVAL contained_in_pool(ARGIN(const Small_Object_Pool *pool), ARGIN(const void *ptr))pool contains *ptr.int Parrot_is_const_pmc(PARROT_INTERP, NOTNULL(PMC *pmc))*pmc is a constant PMC.static void more_traceable_objects(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool))static void gc_ms_add_free_object(SHIM_INTERP, NOTNULL(Small_Object_Pool *pool), NOTNULL(PObj *to_add))PARROT_CANNOT_RETURN_NULL PARROT_WARN_UNUSED_RESULT static PObj *gc_ms_get_free_object(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool))void Parrot_add_to_free_list(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool), NOTNULL(Small_Object_Arena *arena))arena to the free list.void Parrot_append_arena_in_pool(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool), NOTNULL(Small_Object_Arena *new_arena), size_t size)static void gc_ms_alloc_objects(PARROT_INTERP, NOTNULL(Small_Object_Pool *pool))PARROT_MALLOC PARROT_CANNOT_RETURN_NULL Small_Object_Pool *new_small_object_pool(size_t object_size, size_t objects_per_alloc)Small_Object_Pool and returns a pointer to it.void gc_pmc_ext_pool_init(NOTNULL(Small_Object_Pool *pool))static void gc_ms_pool_init(SHIM_INTERP, NOTNULL(Small_Object_Pool *pool))void Parrot_gc_ms_init(PARROT_INTERP)add_free_object_fn,
get_free_object_fn,
alloc_object_fn,
and more_object_fn.void Parrot_small_object_pool_merge(PARROT_INTERP, NOTNULL(Small_Object_Pool *dest), NOTNULL(Small_Object_Pool *source))source into dest.
include/parrot/smallobject.h, docs/memory_internals.pod.
|
|
|