signalfut
A future similar to tokio::signal::unix::Signal, but can be used with:
- Tokio
- async-std
- futures
- smol
- Monoio
- Glommio
- Compio
Supported platforms
Currently, only Linux and macOS are supported. Windows will also be supported in the future.
Examples
Greet when receive either SIGINT or SIGQUIT:
use ctrl_c;
use Signal;
use SignalFut;
async
Let multiple tasks wait for the same signal:
use ctrl_c;
async
Signal handler
This crate disposes a signal handler for the signals you want to watch, since signal handler is shared by the whole process, don't use other crates that also do this, they will clash.
After disposition, the default signal handler will not be reset.
Helper thread and Signal Safety
This crate creates a helper thread to execute the code that is not signal-safe,
the signal handler and the helper thread communicate through an OS pipe, the only
thing that the signal handler does is write(2), which is signal-safe.