11个版本
0.2.5 | 2022年6月21日 |
---|---|
0.2.4 | 2020年7月9日 |
0.2.3 | 2019年6月28日 |
0.2.2 | 2018年8月8日 |
0.1.3 | 2017年5月30日 |
#4 在 #sigint
在 soapysdr 中使用
8KB
90 行
一个简单的crate,用于捕获信号并为后续使用设置布尔标志。
此crate不会在后台创建线程。
示例
以下是一个程序,它将在接收到三个 SIGINT
信号后休眠。
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;
}
}
}
}
lib.rs
:
一个简单的crate,用于捕获信号并为后续使用设置布尔标志。
此crate不会在后台创建线程。
示例
以下是一个程序,它将在接收到三个 SIGINT
信号后休眠。
use nix::unistd::sleep;
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;
}
}
}
依赖项
~2MB
~36K SLoC