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

Download history 6801/week @ 2024-07-22 5641/week @ 2024-07-29 4752/week @ 2024-08-05 6820/week @ 2024-08-12 5839/week @ 2024-08-19 6431/week @ 2024-08-26 5777/week @ 2024-09-02 2749/week @ 2024-09-09 5517/week @ 2024-09-16 5572/week @ 2024-09-23 5131/week @ 2024-09-30 3769/week @ 2024-10-07 5548/week @ 2024-10-14 5952/week @ 2024-10-21 4912/week @ 2024-10-28 4105/week @ 2024-11-04

20,826 downloads per month
Used in 12 crates

MIT license

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