8 releases
Uses new Rust 2024
new 0.3.2 | May 17, 2025 |
---|---|
0.3.1 | May 15, 2025 |
0.3.0 | Apr 27, 2025 |
0.2.1 | Feb 21, 2025 |
0.0.0 | Nov 28, 2024 |
#587 in Unix APIs
475 downloads per month
Used in scuffle-image-processor
54KB
823 lines
scuffle-signal
[!WARNING]
This crate is under active development and may not be stable.
A crate designed to provide a more user friendly interface to
tokio::signal
.
See the changelog for a full release history.
Feature flags
bootstrap
— Enables scuffle-bootstrap supportdocs
— Enables changelog and documentation of feature flags
Why do we need this?
The tokio::signal
module provides a way for us to wait for a signal to be
received in a non-blocking way. This crate extends that with a more helpful
interface allowing the ability to listen to multiple signals concurrently.
Example
use scuffle_signal::SignalHandler;
use tokio::signal::unix::SignalKind;
let mut handler = SignalHandler::new()
.with_signal(SignalKind::interrupt())
.with_signal(SignalKind::terminate());
// Wait for a signal to be received
let signal = handler.await;
// Handle the signal
let interrupt = SignalKind::interrupt();
let terminate = SignalKind::terminate();
match signal {
interrupt => {
// Handle SIGINT
println!("received SIGINT");
},
terminate => {
// Handle SIGTERM
println!("received SIGTERM");
},
}
License
This project is licensed under the MIT or Apache-2.0 license. You can choose between one of them if you use this work.
SPDX-License-Identifier: MIT OR Apache-2.0
Dependencies
~2–11MB
~110K SLoC