From 98ed13c5ed014f03a56b1b8eaf777902713e2b7d Mon Sep 17 00:00:00 2001 From: Andy Gayton Date: Thu, 18 Jul 2024 03:03:12 -0400 Subject: [PATCH] wip --- src/main.rs | 9 ++------- src/signals.rs | 14 ++------------ 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/src/main.rs b/src/main.rs index 422d6d8f93..f07e80260a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -32,11 +32,7 @@ use nu_std::load_standard_library; use nu_utils::perf; use run::{run_commands, run_file, run_repl}; use signals::ctrlc_protection; -use std::{ - path::PathBuf, - str::FromStr, - sync::{atomic::AtomicBool, Arc}, -}; +use std::{path::PathBuf, str::FromStr, sync::Arc}; fn get_engine_state() -> EngineState { let engine_state = nu_cmd_lang::create_default_context(); @@ -74,10 +70,9 @@ fn main() -> Result<()> { report_error_new(&engine_state, &err); } - let ctrlc_bool = Arc::new(AtomicBool::new(false)); let ctrlc_handlers = ctrlc::Handlers::new(); // TODO: make this conditional in the future - ctrlc_protection(&mut engine_state, &ctrlc_bool, &ctrlc_handlers); + ctrlc_protection(&mut engine_state, &ctrlc_handlers); // Begin: Default NU_LIB_DIRS, NU_PLUGIN_DIRS // Set default NU_LIB_DIRS and NU_PLUGIN_DIRS here before the env.nu is processed. If diff --git a/src/signals.rs b/src/signals.rs index 375d29b79c..6885cd713d 100644 --- a/src/signals.rs +++ b/src/signals.rs @@ -2,28 +2,18 @@ use nu_protocol::{ engine::{ctrlc::Handlers, EngineState}, Signals, }; -use std::sync::{ - atomic::{AtomicBool, Ordering}, - Arc, -}; +use std::sync::{atomic::AtomicBool, Arc}; -pub(crate) fn ctrlc_protection( - engine_state: &mut EngineState, - ctrlc_bool: &Arc, - ctrlc_handlers: &Handlers, -) { +pub(crate) fn ctrlc_protection(engine_state: &mut EngineState, ctrlc_handlers: &Handlers) { let interrupt = Arc::new(AtomicBool::new(false)); engine_state.set_signals(Signals::new(interrupt.clone())); { - let ctrlc_bool = ctrlc_bool.clone(); let ctrlc_handlers = ctrlc_handlers.clone(); ctrlc::set_handler(move || { - ctrlc_bool.store(true, Ordering::SeqCst); ctrlc_handlers.run(); }) .expect("Error setting Ctrl-C handler"); } - engine_state.ctrlc = Some(ctrlc_bool.clone()); engine_state.ctrlc_handlers = Some(ctrlc_handlers.clone()); }