mmtk/plan/generational/immix/
gc_work.rs

1use super::global::GenImmix;
2use crate::plan::generational::gc_work::GenNurseryProcessEdges;
3use crate::policy::gc_work::TraceKind;
4use crate::policy::gc_work::DEFAULT_TRACE;
5use crate::scheduler::gc_work::PlanProcessEdges;
6use crate::scheduler::gc_work::UnsupportedProcessEdges;
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 DefaultProcessEdges = GenNurseryProcessEdges<VM, Self::PlanType, DEFAULT_TRACE>;
14    type PinningProcessEdges = UnsupportedProcessEdges<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 DefaultProcessEdges = PlanProcessEdges<VM, GenImmix<VM>, KIND>;
26    type PinningProcessEdges = UnsupportedProcessEdges<VM>;
27}