[−][src]Struct mmtk::Mutator
A mutator is a per-thread data structure that manages allocations and barriers. It is usually highly coupled with the language VM. It is recommended for MMTk users 1) to have a mutator struct of the same layout in the thread local storage that can be accessed efficiently, and 2) to implement fastpath allocation and barriers for the mutator in the VM side.
Fields
allocators: Allocators<P::VM>
barrier: Box<dyn Barrier>
mutator_tls: OpaquePointer
plan: &'static P
config: MutatorConfig<P>
Trait Implementations
impl<P: Plan<Mutator = Self>> MutatorContext<<P as Plan>::VM> for Mutator<P>
[src]
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]
&mut self,
size: usize,
align: usize,
offset: isize,
allocator: AllocationType
) -> Address
pub fn post_alloc(
&mut self,
refer: ObjectReference,
_bytes: usize,
allocator: AllocationType
)
[src]
&mut self,
refer: ObjectReference,
_bytes: usize,
allocator: AllocationType
)
pub fn get_tls(&self) -> OpaquePointer
[src]
pub fn barrier(&mut self) -> &mut dyn Barrier
[src]
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]
Auto Trait Implementations
impl<P> !RefUnwindSafe for Mutator<P>
[src]
impl<P> Send for Mutator<P> where
<P as Plan>::VM: VMBinding,
[src]
<P as Plan>::VM: VMBinding,
impl<P> Sync for Mutator<P> where
<P as Plan>::VM: VMBinding,
[src]
<P as Plan>::VM: VMBinding,
impl<P> Unpin for Mutator<P>
[src]
impl<P> !UnwindSafe for Mutator<P>
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Downcast for T where
T: Any,
[src]
T: Any,
pub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
[src]
pub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
[src]
pub fn as_any(&self) -> &(dyn Any + 'static)
[src]
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]
impl<T> DowncastSync for T where
T: Send + Sync + Any,
[src]
T: Send + Sync + Any,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,