use std::sync::atomic::AtomicUsize;
use std::sync::atomic::Ordering;
static BACK_REQUESTS: AtomicUsize = AtomicUsize::new(0);
pub fn push_back_request() {
BACK_REQUESTS.fetch_add(1, Ordering::SeqCst);
}
pub fn take_back_requests() -> usize {
BACK_REQUESTS.swap(0, Ordering::SeqCst)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn requests_accumulate_and_drain() {
let _ = take_back_requests(); push_back_request();
push_back_request();
assert_eq!(take_back_requests(), 2);
assert_eq!(take_back_requests(), 0);
}
}