// Copyright (c) 2024-present, fjall-rs
// This source code is licensed under both the Apache 2.0 and MIT License
// (found in the LICENSE-* files in the repository)
use std::sync::{Arc, atomic::AtomicBool};
#[derive(Clone, Debug, Default)]
pub struct StopSignal(Arc<AtomicBool>);
impl StopSignal {
pub fn send(&self) {
self.0.store(true, std::sync::atomic::Ordering::Release);
}
#[must_use]
pub fn is_stopped(&self) -> bool {
self.0.load(std::sync::atomic::Ordering::Acquire)
}
}