Expand description
Mutator context for each application thread.
Structsยง
- 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.
- Mutator
Builder - Used to build a mutator struct
- Mutator
Config - Reserved
Allocators ๐ - This is used for plans to indicate the number of allocators reserved for the plan. This is used as a parameter for creating allocator/space mapping. A plan is required to reserve the first few allocators. For example, if n_bump_pointer is 1, it means the first bump pointer allocator will be reserved for the plan (and the plan should initialize its mapping itself), and the spaces in common/base plan will use the following bump pointer allocators.
Traitsยง
- Mutator
Context - 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.
Functionsยง
- common_
prepare_ ๐func - An mutator prepare implementation for plans that use
crate::plan::global::CommonPlan. - common_
release_ ๐func - An mutator release implementation for plans that use
crate::plan::global::CommonPlan. - create_
allocator_ ๐mapping - Create an allocator mapping for spaces in Common/BasePlan for a plan. A plan should reserve its own allocators.
- create_
space_ ๐mapping - Create a space mapping for spaces in Common/BasePlan for a plan. A plan should reserve its own allocators.
- no_
op_ ๐release_ func - A place-holder implementation for
MutatorConfig::release_functhat does nothing. - unreachable_
prepare_ ๐func - A place-holder implementation for
MutatorConfig::prepare_functhat should not be called. It is the most often used by plans that setsPlanConstraints::needs_prepare_mutatortofalse. It is also used byNoGCbecause it must not trigger GC. - unreachable_
release_ ๐func - A place-holder implementation for
MutatorConfig::release_functhat should not be called. Currently only used byNoGC.
Type Aliasesยง
- Space
Mapping ๐