[−][src]Crate wait_timeout
A crate to wait on a child process with a particular timeout.
This crate is an implementation for Unix and Windows of the ability to wait
on a child process with a timeout specified. On Windows the implementation
is fairly trivial as it's just a call to WaitForSingleObject
with a
timeout argument, but on Unix the implementation is much more involved. The
current implementation registers a SIGCHLD
handler and initializes some
global state. This handler also works within multi-threaded environments.
If your application is otherwise handling SIGCHLD
then bugs may arise.
Example
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() } };
Traits
ChildExt | Extension methods for the standard |