use std::sync::{ atomic::{AtomicBool, Ordering}, Arc, }; use nu_protocol::engine::EngineState; pub(crate) fn ctrlc_protection(engine_state: &mut EngineState, ctrlc: &Arc) { let handler_ctrlc = ctrlc.clone(); let engine_state_ctrlc = ctrlc.clone(); ctrlc::set_handler(move || { handler_ctrlc.store(true, Ordering::SeqCst); }) .expect("Error setting Ctrl-C handler"); engine_state.ctrlc = Some(engine_state_ctrlc); }