35 lines
798 B
Rust
35 lines
798 B
Rust
//! Runs a command using waitable handles on Windows.
|
|
//!
|
|
//! Run with:
|
|
//!
|
|
//! ```
|
|
//! cargo run --example windows-command
|
|
//! ```
|
|
|
|
#[cfg(windows)]
|
|
fn main() -> std::io::Result<()> {
|
|
use async_io::os::windows::Waitable;
|
|
use std::process::Command;
|
|
|
|
futures_lite::future::block_on(async {
|
|
// Spawn a process.
|
|
let process = Command::new("cmd")
|
|
.args(["/C", "echo hello"])
|
|
.spawn()
|
|
.expect("failed to spawn process");
|
|
|
|
// Wrap the process in an `Async` object that waits for it to exit.
|
|
let process = Waitable::new(process)?;
|
|
|
|
// Wait for the process to exit.
|
|
process.ready().await?;
|
|
|
|
Ok(())
|
|
})
|
|
}
|
|
|
|
#[cfg(not(windows))]
|
|
fn main() {
|
|
println!("This example is only supported on Windows.");
|
|
}
|