This commit is contained in:
Andy Gayton 2024-06-22 00:48:58 -04:00
parent 0f0b8641c6
commit e194218169
2 changed files with 4 additions and 5 deletions

View File

@ -4,18 +4,18 @@ use std::sync::{
Arc, Mutex,
};
type CtrlcHandler = Box<dyn Fn() + Send + Sync>;
type Handler = Box<dyn Fn() + Send + Sync>;
#[derive(Clone)]
pub struct Handlers {
handlers: Arc<Mutex<Vec<(usize, CtrlcHandler)>>>,
handlers: Arc<Mutex<Vec<(usize, Handler)>>>,
next_id: Arc<AtomicUsize>,
}
#[derive(Clone)]
pub struct Guard {
id: usize,
handlers: Arc<Mutex<Vec<(usize, CtrlcHandler)>>>,
handlers: Arc<Mutex<Vec<(usize, Handler)>>>,
}
impl Drop for Guard {
@ -39,7 +39,7 @@ impl Handlers {
Handlers { handlers, next_id }
}
pub fn add(&self, handler: CtrlcHandler) -> Guard {
pub fn add(&self, handler: Handler) -> Guard {
let id = self.next_id.fetch_add(1, Ordering::Relaxed);
if let Ok(mut handlers) = self.handlers.lock() {
handlers.push((id, handler));

View File

@ -5,7 +5,6 @@ use std::sync::{
};
pub(crate) fn ctrlc_protection(engine_state: &mut EngineState) {
let ctrlc = Arc::new(AtomicBool::new(false));
let handlers = Handlers::new();