latte-cli 0.19.0

A database benchmarking tool for Apache Cassandra
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;

/// Notifies about received Ctrl-C signal
pub struct InterruptHandler {
    interrupted: Arc<AtomicBool>,
}

impl InterruptHandler {
    pub fn install() -> InterruptHandler {
        let cell = Arc::new(AtomicBool::new(false));
        let cell_ref = cell.clone();
        let _ = ctrlc::set_handler(move || cell_ref.store(true, Ordering::Relaxed));
        InterruptHandler { interrupted: cell }
    }

    /// Returns true if Ctrl-C was pressed
    pub fn is_interrupted(&self) -> bool {
        self.interrupted.load(Ordering::Relaxed)
    }
}