1fn main() {
2 match std::env::args().nth(1).as_deref() {
3 Some("--wait-parent") => {
4 println!("Waiting parent...");
7 let status = wait_parent::wait_parent();
8
9 println!("Parent exited with {:?}", status);
10 const STATUS_CONTROL_C_EXIT: i32 = 0xC000013Au32 as i32;
13 match status.and_then(|s| s.code()) {
14 Some(0 | STATUS_CONTROL_C_EXIT) => (),
15 Some(_) | None => {
16 std::thread::sleep(std::time::Duration::from_secs(5));
21 println!("Child exiting...");
22 }
23 }
24 }
25 Some(_) => unreachable!(),
26 None => {
27 println!("Spwaning child...");
28 std::process::Command::new(std::env::current_exe().unwrap())
29 .arg("--wait-parent")
30 .spawn()
31 .unwrap();
32
33 std::thread::sleep(std::time::Duration::from_secs(3));
34
35 }
37 }
38}