Broom 1.0.0
A thread-local C++ Garbage Collector
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
broom::GarbageCollector Class Reference

#include <garbage-collector.h>

Public Types

using GcSet = absl::btree_set< GcNode, GcNode::SetCompare >
 
using ExternalRootSet = absl::btree_set< ExternalRoot, ExternalRoot::SetCompare >
 

Public Member Functions

 GarbageCollector (broom_configuration config, Allocator *allocator)
 
 GarbageCollector ()
 
 GarbageCollector (broom_configuration config)
 
 GarbageCollector (Allocator *allocator)
 
 ~GarbageCollector ()
 
void ForceFastCollection ()
 
void ForceSlowCollection ()
 
void MarkAlive (const void *pointer)
 
BROOM_INLINE void RegisterExternalRoot (ExternalRoot root)
 
BROOM_INLINE void UnregisterExternalRoot (ExternalRoot root)
 
BROOM_INLINE voidRegisterPreciseRoot (PreciseRoot root)
 
BROOM_INLINE void UnregisterPreciseRoot (void *type_erased_root)
 
void AtomicMark ()
 
void AtomicSweep ()
 
BROOM_INLINE void RegisterPointer (const void *pointer, Destructor destructor=nullptr)
 
BROOM_INLINE void Pin (const void *pointer, uint32_t how_many=1)
 
BROOM_INLINE void Unpin (const void *pointer)
 
BROOM_INLINE void DisableAutomatedCollection ()
 
BROOM_INLINE void EnableAutomatedCollection ()
 
BROOM_INLINE void CollectIfNecessary ()
 
voidAllocateRawDontRegister (size_t size)
 

Detailed Description

Definition at line 45 of file garbage-collector.h.

Member Typedef Documentation

◆ ExternalRootSet

Definition at line 55 of file garbage-collector.h.

◆ GcSet

Definition at line 54 of file garbage-collector.h.

Constructor & Destructor Documentation

◆ GarbageCollector() [1/4]

broom::GarbageCollector::GarbageCollector ( broom_configuration  config,
Allocator allocator 
)
inlineexplicit

Definition at line 58 of file garbage-collector.h.

◆ GarbageCollector() [2/4]

broom::GarbageCollector::GarbageCollector ( )
inlineexplicit

Definition at line 64 of file garbage-collector.h.

◆ GarbageCollector() [3/4]

broom::GarbageCollector::GarbageCollector ( broom_configuration  config)
inlineexplicit

Definition at line 65 of file garbage-collector.h.

◆ GarbageCollector() [4/4]

broom::GarbageCollector::GarbageCollector ( Allocator allocator)
inlineexplicit

Definition at line 67 of file garbage-collector.h.

◆ ~GarbageCollector()

broom::GarbageCollector::~GarbageCollector ( )
inline

Definition at line 69 of file garbage-collector.h.

Member Function Documentation

◆ AllocateRawDontRegister()

void * broom::GarbageCollector::AllocateRawDontRegister ( size_t  size)
inline

Definition at line 165 of file garbage-collector.h.

◆ AtomicMark()

void broom::GarbageCollector::AtomicMark ( )

Definition at line 13 of file garbage-collector.cc.

◆ AtomicSweep()

void broom::GarbageCollector::AtomicSweep ( )

Definition at line 51 of file garbage-collector.cc.

◆ CollectIfNecessary()

BROOM_INLINE void broom::GarbageCollector::CollectIfNecessary ( )
inline

Definition at line 139 of file garbage-collector.h.

◆ DisableAutomatedCollection()

BROOM_INLINE void broom::GarbageCollector::DisableAutomatedCollection ( )
inline

Definition at line 136 of file garbage-collector.h.

◆ EnableAutomatedCollection()

BROOM_INLINE void broom::GarbageCollector::EnableAutomatedCollection ( )
inline

Definition at line 137 of file garbage-collector.h.

◆ ForceFastCollection()

void broom::GarbageCollector::ForceFastCollection ( )
inline

Definition at line 91 of file garbage-collector.h.

◆ ForceSlowCollection()

void broom::GarbageCollector::ForceSlowCollection ( )
inline

Definition at line 95 of file garbage-collector.h.

◆ MarkAlive()

void broom::GarbageCollector::MarkAlive ( const void pointer)
inline

Definition at line 100 of file garbage-collector.h.

◆ Pin()

BROOM_INLINE void broom::GarbageCollector::Pin ( const void pointer,
uint32_t  how_many = 1 
)
inline

Definition at line 131 of file garbage-collector.h.

◆ RegisterExternalRoot()

BROOM_INLINE void broom::GarbageCollector::RegisterExternalRoot ( ExternalRoot  root)
inline

Definition at line 107 of file garbage-collector.h.

◆ RegisterPointer()

BROOM_INLINE void broom::GarbageCollector::RegisterPointer ( const void pointer,
Destructor  destructor = nullptr 
)
inline

Definition at line 126 of file garbage-collector.h.

◆ RegisterPreciseRoot()

BROOM_INLINE void * broom::GarbageCollector::RegisterPreciseRoot ( PreciseRoot  root)
inline

Definition at line 113 of file garbage-collector.h.

◆ Unpin()

BROOM_INLINE void broom::GarbageCollector::Unpin ( const void pointer)
inline

Definition at line 134 of file garbage-collector.h.

◆ UnregisterExternalRoot()

BROOM_INLINE void broom::GarbageCollector::UnregisterExternalRoot ( ExternalRoot  root)
inline

Definition at line 110 of file garbage-collector.h.

◆ UnregisterPreciseRoot()

BROOM_INLINE void broom::GarbageCollector::UnregisterPreciseRoot ( void type_erased_root)
inline

Definition at line 119 of file garbage-collector.h.


The documentation for this class was generated from the following files: