Expand description
This module contains code useful for tracing, i.e. visiting the reachable objects by traversing all or part of an object graph.
Modules§
- gc_work 🔒
Structs§
- Plan
Trace - A
Traceimplementation that dispatches thetrace_objectmethod throughPlanTraceObject::trace_object. It is applicable to all plans that implementPlanTraceObject. - SFTTrace
- A
Traceimplementation that dispatches thetrace_objectmethod throughcrate::policy::sft::SFT::sft_trace_objectusing the Space Function Table (SFT). - Slot
Iterator 🔒 - For iterating over the slots of an object.
- Unsupported
Trace - A placeholder for unsupported traces. For example, it can be used for
crate::scheduler::GCWorkContext::PinningTracefor plans that don’t support object pinning. - Vector
Queue - An implementation of
ObjectQueueusing aVec.
Traits§
- Object
Queue - This trait represents an object queue to enqueue objects during tracing.
- Trace
- This trait provides methods used during a trace. The most important method is
Self::trace_objectwhich provides the way to trace an object during the current trace. Many work packets depend on this trait to trace objects.
Type Aliases§
- Option
Object Queue - A one-element object queue backed by an
Option<ObjectReference>. Used by SFT to decouple the concreteObjectQueuetype from the dynamic dispatching. - Slot
OfTrace - A shorthand for getting the slot type from a
Traceinstance. - Vector
Object Queue - A vector queue for object references.