mmtk/plan/generational/immix/
gc_work.rs

1use super::global::GenImmix;
2use crate::plan::generational::gc_work::GenNurseryTrace;
3use crate::plan::tracing::PlanTrace;
4use crate::plan::tracing::UnsupportedTrace;
5use crate::policy::gc_work::TraceKind;
6use crate::policy::gc_work::DEFAULT_TRACE;
7use crate::vm::VMBinding;
8
9pub struct GenImmixNurseryGCWorkContext<VM: VMBinding>(std::marker::PhantomData<VM>);
10impl<VM: VMBinding> crate::scheduler::GCWorkContext for GenImmixNurseryGCWorkContext<VM> {
11    type VM = VM;
12    type PlanType = GenImmix<VM>;
13    type DefaultTrace = GenNurseryTrace<VM, Self::PlanType, DEFAULT_TRACE>;
14    type PinningTrace = UnsupportedTrace<VM>;
15}
16
17pub(super) struct GenImmixMatureGCWorkContext<VM: VMBinding, const KIND: TraceKind>(
18    std::marker::PhantomData<VM>,
19);
20impl<VM: VMBinding, const KIND: TraceKind> crate::scheduler::GCWorkContext
21    for GenImmixMatureGCWorkContext<VM, KIND>
22{
23    type VM = VM;
24    type PlanType = GenImmix<VM>;
25    type DefaultTrace = PlanTrace<GenImmix<VM>, KIND>;
26    type PinningTrace = UnsupportedTrace<VM>;
27}