From 7b631beb0af00b83fddaffded508a9db7becb2b6 Mon Sep 17 00:00:00 2001 From: Manos Pitsidianakis Date: Fri, 28 Feb 2020 09:12:36 +0200 Subject: [PATCH] Don't panic in WorkController::drop --- src/state.rs | 2 +- src/workers.rs | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/state.rs b/src/state.rs index aca73e826..9ce307012 100644 --- a/src/state.rs +++ b/src/state.rs @@ -220,7 +220,7 @@ impl Drop for State { use nix::sys::wait::{waitpid, WaitPidFlag}; /* Try wait, we don't want to block */ if let Err(e) = waitpid(child_pid, Some(WaitPidFlag::WNOHANG)) { - eprintln!("Failed to wait on subprocess {}: {}", child_pid, e); + debug!("Failed to wait on subprocess {}: {}", child_pid, e); } } } diff --git a/src/workers.rs b/src/workers.rs index 79ba0834b..18c5f1df8 100644 --- a/src/workers.rs +++ b/src/workers.rs @@ -64,8 +64,10 @@ pub struct WorkController { impl Drop for WorkController { fn drop(&mut self) { - for _ in 0..self.threads.lock().unwrap().len() { - self.thread_end_tx.send(true).unwrap(); + if let Ok(lock) = self.threads.lock() { + for _ in 0..lock.len() { + let _ = self.thread_end_tx.send(true); + } } } }