Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lilydjwg/rust-signalbool
A simple crate to catch signals and set a boolean flag for later use.
https://github.com/lilydjwg/rust-signalbool
rust-library signal-handler
Last synced: about 2 months ago
JSON representation
A simple crate to catch signals and set a boolean flag for later use.
- Host: GitHub
- URL: https://github.com/lilydjwg/rust-signalbool
- Owner: lilydjwg
- License: bsd-3-clause
- Created: 2017-05-27T07:59:03.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-21T13:28:50.000Z (over 2 years ago)
- Last Synced: 2024-03-22T20:22:17.766Z (10 months ago)
- Topics: rust-library, signal-handler
- Language: Rust
- Size: 14.6 KB
- Stars: 3
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
A simple crate to catch signals and set a boolean flag for later use.
This crate doesn't create threads behind the scene.
[![Crates.io Version](https://img.shields.io/crates/v/signalbool.svg)](https://crates.io/crates/signalbool)
[![GitHub stars](https://img.shields.io/github/stars/lilydjwg/rust-signalbool.svg?style=social&label=Star)](https://github.com/lilydjwg/rust-signalbool)# Example
Here is a program that sleeps until it receives three `SIGINT` signals.
```rust
extern crate signalbool;
extern crate nix;use nix::unistd::sleep;
fn main() {
let mut sb = signalbool::SignalBool::new(
&[signalbool::Signal::SIGINT], signalbool::Flag::Interrupt,
).unwrap();
let mut count = 0;
loop {
sleep(10);
if sb.caught() {
println!("Caught SIGINT.");
count += 1;
sb.reset();
if count == 3 {
break;
}
}
}
}
```