Skip to content

Latest commit

 

History

History
36 lines (25 loc) · 941 Bytes

README.md

File metadata and controls

36 lines (25 loc) · 941 Bytes

wait-timeout

Build Status

Documentation

Rust crate for waiting on a Child process with a timeout specified.

$ cargo add wait-timeout

Example:

use std::io;
use std::process::Command;
use std::time::{Duration, Instant};
use wait_timeout::ChildExt;

fn main() -> io::Result<()> {
    let mut child = Command::new("sleep").arg("100").spawn()?;

    let start = Instant::now();
    assert!(child.wait_timeout(Duration::from_millis(100))?.is_none());
    assert!(start.elapsed() > Duration::from_millis(100));

    child.kill()?;

    let start = Instant::now();
    assert!(child.wait_timeout(Duration::from_millis(100))?.is_some());
    assert!(start.elapsed() < Duration::from_millis(100));

    Ok(())
}