mmtk/scheduler/
mod.rs

1//! A general scheduler implementation. MMTk uses it to schedule GC-related work.
2
3/// Buffer size for [`ProcessEdgesWork`] work packets. This constant is exposed to binding
4/// developers so that they can use this value for places in their binding that interface with the
5/// work packet system, specifically the transitive closure via `ProcessEdgesWork` work packets
6/// such as roots gathering code or weak reference processing. In order to have better load
7/// balancing, it is recommended that binding developers use this constant to split work up into
8/// different work packets.
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;
32
33pub(crate) mod gc_work;
34pub use gc_work::ProcessEdgesWork;