Trait mmtk::scheduler::gc_work::ScanObjectsWork
source · pub trait ScanObjectsWork<VM: VMBinding>: GCWork<VM> + Sized {
type E: ProcessEdgesWork<VM = VM>;
// Required methods
fn post_scan_object(&self, object: ObjectReference);
fn get_bucket(&self) -> WorkBucketStage;
// Provided method
fn do_work_common(
&self,
buffer: &[ObjectReference],
worker: &mut GCWorker<<Self::E as ProcessEdgesWork>::VM>,
mmtk: &'static MMTK<<Self::E as ProcessEdgesWork>::VM>
) { ... }
}
Expand description
Trait for a work packet that scans objects
Required Associated Types§
sourcetype E: ProcessEdgesWork<VM = VM>
type E: ProcessEdgesWork<VM = VM>
The associated ProcessEdgesWork for processing the outgoing edges of the objects in this packet.
Required Methods§
sourcefn post_scan_object(&self, object: ObjectReference)
fn post_scan_object(&self, object: ObjectReference)
Called after each object is scanned.
sourcefn get_bucket(&self) -> WorkBucketStage
fn get_bucket(&self) -> WorkBucketStage
Return the work bucket for this work packet and its derived work packets.
Provided Methods§
sourcefn do_work_common(
&self,
buffer: &[ObjectReference],
worker: &mut GCWorker<<Self::E as ProcessEdgesWork>::VM>,
mmtk: &'static MMTK<<Self::E as ProcessEdgesWork>::VM>
)
fn do_work_common( &self, buffer: &[ObjectReference], worker: &mut GCWorker<<Self::E as ProcessEdgesWork>::VM>, mmtk: &'static MMTK<<Self::E as ProcessEdgesWork>::VM> )
The common code for ScanObjects and PlanScanObjects.
Object Safety§
This trait is not object safe.