tokio/runtime/metrics/
scheduler.rs1use crate::loom::sync::atomic::Ordering::Relaxed;
2use crate::util::metric_atomics::MetricAtomicU64;
3
4#[derive(Debug)]
12pub(crate) struct SchedulerMetrics {
13 pub(super) remote_schedule_count: MetricAtomicU64,
15 pub(super) budget_forced_yield_count: MetricAtomicU64,
16}
17
18impl SchedulerMetrics {
19 pub(crate) fn new() -> SchedulerMetrics {
20 SchedulerMetrics {
21 remote_schedule_count: MetricAtomicU64::new(0),
22 budget_forced_yield_count: MetricAtomicU64::new(0),
23 }
24 }
25
26 pub(crate) fn inc_remote_schedule_count(&self) {
28 self.remote_schedule_count.add(1, Relaxed);
29 }
30
31 pub(crate) fn inc_budget_forced_yield_count(&self) {
33 self.budget_forced_yield_count.add(1, Relaxed);
34 }
35}