Module mmtk::util::opaque_pointer

source ·
Expand description

Opaque pointers used in MMTk, e.g. VMThread.

Structs§

  • OpaquePointer represents pointers that MMTk needs to know about but will not deferefence it. For example, a pointer to the thread or the thread local storage is an opaque pointer for MMTK. The type does not provide any method for dereferencing.
  • A VMMutatorThread is a VMThread that associates with a crate::plan::Mutator. When a VMMutatorThread is used as an argument or a field of a type, it generally means the function or the functions for the type is executed in the context of the mutator thread.
  • A VMThread is an opaque pointer that can uniquely identify a thread in the VM. A VM binding may use thread pointers or thread IDs as VMThreads. MMTk does not make any assumption on this. This is used as arguments in the VM->MMTk APIs, and MMTk may store it and pass it back through the MMTk->VM traits, so the VM knows the context. A VMThread may be a VMMutatorThread, a VMWorkerThread, or any VMThread.
  • A VMWorkerThread is a VMThread that is associates with a crate::scheduler::GCWorker. When a VMWorkerThread is used as an argument or a field of a type, it generally means the function or the functions for the type is executed in the context of the mutator thread.