[][src]Trait mmtk::MutatorContext

pub trait MutatorContext<VM: VMBinding>: Send + Sync + 'static {
    pub fn prepare(&mut self, tls: OpaquePointer);
pub fn release(&mut self, tls: OpaquePointer);
pub fn alloc(
        &mut self,
        size: usize,
        align: usize,
        offset: isize,
        allocator: AllocationType
    ) -> Address;
pub fn post_alloc(
        &mut self,
        refer: ObjectReference,
        bytes: usize,
        allocator: AllocationType
    );
pub fn get_tls(&self) -> OpaquePointer;
pub fn barrier(&mut self) -> &mut dyn Barrier; pub fn flush_remembered_sets(&mut self) { ... }
pub fn flush(&mut self) { ... }
pub fn record_modified_node(&mut self, obj: ObjectReference) { ... }
pub fn record_modified_edge(&mut self, slot: Address) { ... } }

Each GC plan should provide their implementation of a MutatorContext. Note that this trait is no longer needed as we removed per-plan mutator implementation and we will remove this trait as well in the future.

Required methods

pub fn prepare(&mut self, tls: OpaquePointer)[src]

pub fn release(&mut self, tls: OpaquePointer)[src]

pub fn alloc(
    &mut self,
    size: usize,
    align: usize,
    offset: isize,
    allocator: AllocationType
) -> Address
[src]

pub fn post_alloc(
    &mut self,
    refer: ObjectReference,
    bytes: usize,
    allocator: AllocationType
)
[src]

pub fn get_tls(&self) -> OpaquePointer[src]

pub fn barrier(&mut self) -> &mut dyn Barrier[src]

Loading content...

Provided methods

pub fn flush_remembered_sets(&mut self)[src]

pub fn flush(&mut self)[src]

pub fn record_modified_node(&mut self, obj: ObjectReference)[src]

pub fn record_modified_edge(&mut self, slot: Address)[src]

Loading content...

Implementors

impl<P: Plan<Mutator = Self>> MutatorContext<<P as Plan>::VM> for Mutator<P>[src]

Loading content...