From f7c2426ff6df06908cba7f50b563e130604ff0e6 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Mon, 11 Dec 2023 16:21:23 -0700 Subject: [PATCH] Fix signal handling --- src/main.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 9b450c9cac..5685f96a7f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -71,12 +71,17 @@ fn daemon(daemon: Daemon) -> Result<()> { let mut pending = Vec::new(); loop { - if let Some(request) = socket.next_request(SignalBehavior::Restart)? { - match request.handle_scheme_block_mut(&mut *scheme.lock().unwrap()) { + match socket.next_request(SignalBehavior::Interrupt) { + Ok(Some(request)) => match request.handle_scheme_block_mut(&mut *scheme.lock().unwrap()) { Ok(response) => { socket.write_responses(&[response], SignalBehavior::Restart)?; } Err(request) => pending.push(request), + }, + Ok(None) => {}, + Err(err) => match err.errno { + libredox::errno::EINTR => {}, + _ => return Err(err), } }