diff options
author | bnewbold <bnewbold@robocracy.org> | 2016-10-12 22:58:46 -0700 |
---|---|---|
committer | bnewbold <bnewbold@robocracy.org> | 2016-10-12 22:58:46 -0700 |
commit | abda19fd5361ec0b8fa38f1f98855112c0a37bd8 (patch) | |
tree | ff6a959e1c4eaa81456cf770ee690665e00fae40 | |
parent | c3725511aba85f2422b09b5aa1aacf2b89aa7b77 (diff) | |
download | einhyrningsins-abda19fd5361ec0b8fa38f1f98855112c0a37bd8.tar.gz einhyrningsins-abda19fd5361ec0b8fa38f1f98855112c0a37bd8.zip |
clean up more robustly (child reaping)
-rw-r--r-- | src/main.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs index e7f4fe5..7074d38 100644 --- a/src/main.rs +++ b/src/main.rs @@ -424,8 +424,10 @@ fn shepard(mut state: EinState, signal_rx: Receiver<Signal>) { } println!("Reaping children... (count={})", brood.len()); - for (_, o) in brood.iter_mut() { - o.process.wait().ok(); + for (pid, o) in brood.iter() { + if o.is_active() { + nix::sys::wait::waitpid(*pid as i32, Some(nix::sys::wait::WNOHANG)).ok(); + } } println!("Done."); } |