use std::sync::Arc; use std::sync::atomic::{AtomicBool, Ordering}; use tracing::info; pub fn exit_handler(running: Arc) { let r = running.clone(); ctrlc::set_handler(move || { info!("检测到退出信号!"); r.store(false, Ordering::Relaxed); }) .expect("Error setting Ctrl-C handler"); }