Trait mmtk::plan::mutator_context::MutatorContext[][src]

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

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

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

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

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

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

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

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

Loading content...

Provided methods

Loading content...

Implementors

impl<VM: VMBinding> MutatorContext<VM> for Mutator<VM>[src]

Loading content...