[−][src]Trait mmtk::Plan
A plan describes the global core functionality for all memory management schemes. All global MMTk plans should implement this trait.
The global instance defines and manages static resources (such as memory and virtual memory resources).
Associated Types
Loading content...Required methods
fn new(
vm_map: &'static VMMap,
mmapper: &'static Mmapper,
options: Arc<UnsafeOptionsWrapper>,
scheduler: &'static MMTkScheduler<Self::VM>
) -> Self
vm_map: &'static VMMap,
mmapper: &'static Mmapper,
options: Arc<UnsafeOptionsWrapper>,
scheduler: &'static MMTkScheduler<Self::VM>
) -> Self
fn base(&self) -> &BasePlan<Self::VM>
fn schedule_collection(&'static self, _scheduler: &MMTkScheduler<Self::VM>)
fn gc_init(
&mut self,
heap_size: usize,
vm_map: &'static VMMap,
scheduler: &Arc<MMTkScheduler<Self::VM>>
)
&mut self,
heap_size: usize,
vm_map: &'static VMMap,
scheduler: &Arc<MMTkScheduler<Self::VM>>
)
fn bind_mutator(
&'static self,
tls: OpaquePointer,
mmtk: &'static MMTK<Self::VM>
) -> Box<Self::Mutator>
&'static self,
tls: OpaquePointer,
mmtk: &'static MMTK<Self::VM>
) -> Box<Self::Mutator>
fn get_allocator_mapping(
&self
) -> &'static EnumMap<AllocationSemantics, AllocatorSelector>
&self
) -> &'static EnumMap<AllocationSemantics, AllocatorSelector>
fn prepare(&self, tls: OpaquePointer)
fn release(&self, tls: OpaquePointer)
fn get_pages_used(&self) -> usize
Provided methods
fn common(&self) -> &CommonPlan<Self::VM>
fn mmapper(&self) -> &'static Mmapper
fn options(&self) -> &Options
fn in_nursery(&self) -> bool
fn is_initialized(&self) -> bool
fn poll(&self, space_full: bool, space: &dyn Space<Self::VM>) -> bool
fn log_poll(&self, space: &dyn Space<Self::VM>, message: &'static str)
fn collection_required(
&self,
space_full: bool,
_space: &dyn Space<Self::VM>
) -> bool where
Self: Sized,
&self,
space_full: bool,
_space: &dyn Space<Self::VM>
) -> bool where
Self: Sized,
This method controls the triggering of a GC. It is called periodically
during allocation. Returns true
to trigger a collection.
@param spaceFull Space request failed, must recover pages within 'space'.
@param space TODO
@return true
if a collection is requested by the plan.