A simple easy to use wrapper around Ctrl-C signal.
```rust extern crate ctrlc; use ctrlc::CtrlC; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Arc;
fn main() { let running = Arc::new(AtomicBool::new(true)); let r = running.clone(); CtrlC::set_handler(move || { r.store(false, Ordering::SeqCst); }); println!("Waiting for Ctrl-C..."); while running.load(Ordering::SeqCst) {} println!("Got it! Exiting..."); } ```
cargo run --example readme_example
If you're using a nightly compiler, I suggest building with cargo build --features nightly
to avoid the dependency to lazy_static. On stable and beta compilers cargo build
will do.
Licensed under either of * Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) * MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.