cfg_64bit_metrics! { use std::sync::atomic::AtomicU64;
}
/// `AtomicU64` that is is a no-op on platforms without 64-bit atomics /// /// When used on platforms without 64-bit atomics, writes to this are no-ops. /// The `load` method is only defined when 64-bit atomics are available. #[derive(Debug, Default)] pub(crate) struct MetricAtomicU64 { #[cfg(target_has_atomic = "64")]
value: AtomicU64,
}
// some of these are currently only used behind cfg_unstable #[allow(dead_code)] impl MetricAtomicU64 { // Load is only defined when supported
cfg_64bit_metrics! { pub(crate) fn load(&self, ordering: Ordering) -> u64 { self.value.load(ordering)
}
}
#[cfg_attr(not(all(tokio_unstable, feature = "rt")), allow(dead_code))] /// `AtomicUsize` for use in metrics. /// /// This exposes simplified APIs for use in metrics & uses `std::sync` instead of Loom to avoid polluting loom logs with metric information. #[derive(Debug, Default)] pub(crate) struct MetricAtomicUsize {
value: AtomicUsize,
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.