use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
use std::time::Duration;
pub struct ContinuousMonitor {
running: Arc<AtomicBool>,
interval: Duration,
}
impl ContinuousMonitor {
pub fn new(interval: Duration) -> Self {
Self {
running: Arc::new(AtomicBool::new(false)),
interval,
}
}
pub fn start(&self) {
self.running.store(true, Ordering::SeqCst);
}
pub fn stop(&self) {
self.running.store(false, Ordering::SeqCst);
}
pub fn is_running(&self) -> bool {
self.running.load(Ordering::SeqCst)
}
}