| Vulnerabilities | |||||
|---|---|---|---|---|---|
| Version | Suggest | Low | Medium | High | Critical |
| 0.2.14 | 0 | 0 | 0 | 0 | 0 |
| 0.2.13 | 0 | 0 | 0 | 0 | 0 |
| 0.2.12 | 0 | 0 | 0 | 0 | 0 |
| 0.2.11 | 0 | 0 | 0 | 0 | 0 |
| 0.2.10 | 0 | 0 | 0 | 0 | 0 |
| 0.2.9 | 0 | 0 | 0 | 0 | 0 |
| 0.2.8 | 0 | 0 | 0 | 0 | 0 |
| 0.2.7 | 0 | 0 | 0 | 0 | 0 |
| 0.2.6 | 0 | 0 | 0 | 0 | 0 |
| 0.2.5 | 0 | 0 | 0 | 0 | 0 |
| 0.2.4 | 0 | 0 | 0 | 0 | 0 |
| 0.2.3 | 0 | 0 | 0 | 0 | 0 |
| 0.2.2 | 0 | 0 | 0 | 0 | 0 |
| 0.2.1 | 0 | 0 | 0 | 0 | 0 |
| 0.2.0 | 0 | 0 | 0 | 0 | 0 |
| 0.1.0 | 0 | 0 | 0 | 0 | 0 |
0.2.14 - This version may not be safe as it has not been updated for a long time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
MIT - MIT LicenseAsynchronous signal handling.
This crate provides the Signals type, which can be used to listen for POSIX signals asynchronously. It can be seen as an asynchronous version of signal_hook::iterator::Signals.
On unix, this crate uses the signal_hook_registry crate to register a listener for each signal. That listener will then send a message through a Unix socket to the Signals type, which will receive it and notify the user. Asynchronous notification is done through the async-io crate.
Note that the internal pipe has a limited capacity. Once it has reached capacity, additional signals will be dropped.
On Windows, a different implementation that only supports SIGINT is used. This implementation uses a channel to notify the user.
use async_signal::{Signal, Signals};
use futures_lite::prelude::*;
use signal_hook::low_level;
// Register the signals we want to receive.
let mut signals = Signals::new([
Signal::Term,
Signal::Quit,
Signal::Int,
])?;
// Wait for a signal to be received.
while let Some(signal) = signals.next().await {
// Print the signal.
eprintln!("Received signal {:?}", signal);
// After printing it, do whatever the signal was supposed to do in the first place.
low_level::emulate_default_handler(signal.unwrap() as i32).unwrap();
}Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.