use std::sync::atomic::Ordering::Relaxed;
use wdev::Device;
use super::storage_session::StorageSession;
impl<'a, D: Device> StorageSession<'a, D> {
pub fn incr_session_found(&self) {
self.session_found.fetch_add(1, Relaxed);
}
pub fn incr_session_notfound(&self) {
self.session_notfound.fetch_add(1, Relaxed);
}
pub fn incr_session_pending(&self) {
self.session_pending.fetch_add(1, Relaxed);
}
pub fn start_pending_metrics(&self) {
let now_ms = coarsetime::Clock::now_since_epoch().as_millis();
self.pending_start_ms.store(now_ms, Relaxed);
}
pub fn stop_pending_metrics(&self) {
let start = self.pending_start_ms.swap(0, Relaxed);
if start != 0 {
let now_ms = coarsetime::Clock::now_since_epoch().as_millis();
self
.pending_total_ms
.fetch_add(now_ms.saturating_sub(start), Relaxed);
}
}
}