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.