mmtk/scheduler/
mod.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//! A general scheduler implementation. MMTk uses it to schedule GC-related work.

/// Buffer size for [`ProcessEdgesWork`] work packets. This constant is exposed to binding
/// developers so that they can use this value for places in their binding that interface with the
/// work packet system, specifically the transitive closure via `ProcessEdgesWork` work packets
/// such as roots gathering code or weak reference processing. In order to have better load
/// balancing, it is recommended that binding developers use this constant to split work up into
/// different work packets.
pub const EDGES_WORK_BUFFER_SIZE: usize = 4096;

pub(crate) mod affinity;

#[allow(clippy::module_inception)]
mod scheduler;
pub(crate) use scheduler::GCWorkScheduler;

mod stat;
mod work_counter;

mod work;
pub use work::GCWork;
pub(crate) use work::GCWorkContext;

mod work_bucket;
pub use work_bucket::WorkBucketStage;

mod worker;
mod worker_goals;
mod worker_monitor;
pub(crate) use worker::current_worker_ordinal;
pub use worker::GCWorker;

pub(crate) mod gc_work;
pub use gc_work::ProcessEdgesWork;