Module tracing

Module tracing 

Source
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§

PlanTrace
A Trace implementation that dispatches the trace_object method through PlanTraceObject::trace_object. It is applicable to all plans that implement PlanTraceObject.
SFTTrace
A Trace implementation that dispatches the trace_object method through crate::policy::sft::SFT::sft_trace_object using the Space Function Table (SFT).
SlotIterator 🔒
For iterating over the slots of an object.
UnsupportedTrace
A placeholder for unsupported traces. For example, it can be used for crate::scheduler::GCWorkContext::PinningTrace for plans that don’t support object pinning.
VectorQueue
An implementation of ObjectQueue using a Vec.

Traits§

ObjectQueue
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_object which provides the way to trace an object during the current trace. Many work packets depend on this trait to trace objects.

Type Aliases§

OptionObjectQueue
A one-element object queue backed by an Option<ObjectReference>. Used by SFT to decouple the concrete ObjectQueue type from the dynamic dispatching.
SlotOfTrace
A shorthand for getting the slot type from a Trace instance.
VectorObjectQueue
A vector queue for object references.