6 stable releases
Uses old Rust 2015
1.1.1 | Mar 21, 2018 |
---|---|
1.1.0 | Nov 11, 2016 |
1.0.6 | Jun 11, 2016 |
1.0.5 | Mar 1, 2016 |
1.0.4 | Dec 4, 2015 |
#358 in Operating systems
20,826 downloads per month
Used in 12 crates
9KB
159 lines
simple-signal
A simple wrapper for handling Unix process signals.
Example Usage
extern crate simple_signal;
use simple_signal::{self, Signal};
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
fn main() {
let running = Arc::new(AtomicBool::new(true));
let r = running.clone();
simple_signal::set_handler(&[Signal::Int, Signal::Term], move |_signals| {
r.store(false, Ordering::SeqCst);
});
println!("Waiting for a signal...");
while running.load(Ordering::SeqCst) {}
println!("Got it! Exiting...");
}
Try the example yourself
cargo run --example readme_example
Building
If you're using a nightly compiler, I suggest building with cargo build --features nightly
to avoid the dependency on lazy_static. On stable and beta compilers, just run cargo build
.
lib.rs
:
A simple wrapper for handling Unix process signals.
Dependencies
~46KB