From e1ba2f7141aaa11a30a239ff597a0d6a3080e2a0 Mon Sep 17 00:00:00 2001 From: guochao Date: Fri, 3 Nov 2023 10:09:56 +0800 Subject: [PATCH] fix the problem when subprcess clone again --- src/main.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index 08a142d..955fc31 100644 --- a/src/main.rs +++ b/src/main.rs @@ -74,7 +74,9 @@ fn main() -> anyhow::Result<()> { loop { log::debug!("parent: waitpid..."); - match waitpid(child, None)? { + let waitstatus = waitpid(child, None)?; + + match waitstatus { WaitStatus::Exited(pid, ret) => { log::info!("child {pid} exited with return code {ret}"); break; @@ -96,7 +98,9 @@ fn main() -> anyhow::Result<()> { } _ => {} } - nix::sys::ptrace::cont(child, None)?; + if let Some(pid) = waitstatus.pid() { + nix::sys::ptrace::cont(pid, None)?; + } } return Ok(()); } @@ -171,4 +175,3 @@ fn main() -> anyhow::Result<()> { panic!("unreachable"); } -