module vrt.gc.manager.rbman

This module holds code that mangages allocating memory for extents and memory for the objects in the extents. This manager uses a RBTree to search to search for extents.

Code Map

//! This module holds code that mangages allocating memory for extents and
//! memory for the objects in the extents. This manager uses a RBTree to
//! search to search for extents.
module vrt.gc.manager.rbman;


//! Extent manager that uses a RBTree to enable searching of pointers.
struct RBMan
{
public:
	fn setup(size: size_t) { }
	fn treeVisit(dlg: scope (RBTree.VisitDg)) { }
	fn treeInsert(n: UnionNode*, compare: scope (RBTree.CompDg)) { }
	fn getExtentFromPtr(ptr: void*) Extent* { }
	fn totalSize() size_t { }
	fn prepareForCollect() { }
	fn shutdown() { }
	fn allocSlabStruct(associatedPtr: void*, associatedSz: size_t) Slab* { }
	fn allocLargeStruct(associatedPtr: void*, associatedSz: size_t) Large* { }
	fn freeSlabStructAndMem(slab: Slab*) { }
	fn freeLargeStructAndMem(large: Large*) { }
	fn freeInternalStruct(slab: Slab*) { }
	fn allocMemoryFromOS(n: size_t) void* { }
	fn freeMemoryToOS(ptr: void*, n: size_t) { }
	fn setLowestPointer() { }
	fn setHighestPointer() { }
	fn getExtentFromPtr(ptr: void*, _extents: RBTree) Extent* { }
	fn compareExtent(n1: Node*, n2: Node*) i32 { }
	fn alwaysHit(Node*, Node*) i32 { }
	fn emptySlab(n: Node*) bool { }


public:
	static fn allocGC(n: size_t) void* { }
}
struct RBMan

Extent manager that uses a RBTree to enable searching of pointers.