use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
static COUNTING: AtomicBool = AtomicBool::new(false);
static SHOULD_SYNC_READS: AtomicUsize = AtomicUsize::new(0);
static SYNC_CALLS: AtomicUsize = AtomicUsize::new(0);
pub fn set_counting(enabled: bool) {
COUNTING.store(enabled, Ordering::Relaxed);
}
pub fn reset() {
SHOULD_SYNC_READS.store(0, Ordering::Relaxed);
SYNC_CALLS.store(0, Ordering::Relaxed);
}
pub fn should_sync_reads() -> usize {
SHOULD_SYNC_READS.load(Ordering::Relaxed)
}
pub fn sync_calls() -> usize {
SYNC_CALLS.load(Ordering::Relaxed)
}
pub(crate) fn record_should_sync_read() {
if COUNTING.load(Ordering::Relaxed) {
SHOULD_SYNC_READS.fetch_add(1, Ordering::Relaxed);
}
}
pub(crate) fn record_sync_call() {
if COUNTING.load(Ordering::Relaxed) {
SYNC_CALLS.fetch_add(1, Ordering::Relaxed);
}
}