6 个版本
使用旧的 Rust 2015
0.2.0 | 2018年11月23日 |
---|---|
0.1.5 | 2017年3月7日 |
0.1.4 | 2017年2月10日 |
0.1.3 | 2016年2月21日 |
0.1.0 | 2015年9月8日 |
在 操作系统 中排名 62
每月下载量 1,543,855
用于 1,430 个 crate(直接使用 65 个)
18KB
263 行代码(不包括注释)
wait-timeout
这是一个 Rust crate,用于等待指定超时时间的 Child
进程。
# Cargo.toml
[dependencies]
wait-timeout = "0.1.5"
lib.rs
:
一个 crate,用于等待具有特定超时时间的子进程。
此 crate 是 Unix 和 Windows 平台上等待具有指定超时时间的子进程的能力的实现。在 Windows 上,实现相对简单,只需调用带有超时参数的 WaitForSingleObject
即可,但在 Unix 上,实现则更为复杂。当前的实现注册了一个 SIGCHLD
处理器并初始化了一些全局状态。此处理器也可以在多线程环境中工作。如果您的应用程序正在处理 SIGCHLD
,则可能会出现错误。
示例
use std::process::Command;
use wait_timeout::ChildExt;
use std::time::Duration;
let mut child = Command::new("foo").spawn().unwrap();
let one_sec = Duration::from_secs(1);
let status_code = match child.wait_timeout(one_sec).unwrap() {
Some(status) => status.code(),
None => {
// child hasn't exited yet
child.kill().unwrap();
child.wait().unwrap().code()
}
};
依赖项
~43KB