mmtk/scheduler/
mod.rs

1//! A general scheduler implementation. MMTk uses it to schedule GC-related work.
2
3/// This constant used to be the default capacity of work packets that process slots, such as
4/// `ProcessSlots`.  But now it is an empirical value used by many work packets.
5///
6/// We expose this constant to the VM binding developers.  During root scanning, the VM binding
7/// should call methods of [`crate::vm::RootsWorkFactory`] and pass lists of root slots or root nodes.  This
8/// constant shall be used as the max lengths of those lists.
9pub const EDGES_WORK_BUFFER_SIZE: usize = 4096;
10
11pub(crate) mod affinity;
12
13#[allow(clippy::module_inception)]
14mod scheduler;
15pub(crate) use scheduler::GCWorkScheduler;
16
17mod stat;
18mod work_counter;
19
20pub(crate) mod work;
21pub use work::GCWork;
22pub(crate) use work::GCWorkContext;
23
24mod work_bucket;
25pub use work_bucket::WorkBucketStage;
26
27mod worker;
28mod worker_goals;
29mod worker_monitor;
30pub(crate) use worker::current_worker_ordinal;
31pub use worker::GCWorker;
32pub(crate) use worker::GCWorkerShared;
33
34pub(crate) mod gc_work;