From 75f8fd8746bb82db0ab06a27b20ea9a8664a267a Mon Sep 17 00:00:00 2001 From: unspeaker Date: Fri, 9 May 2025 21:37:52 +0300 Subject: [PATCH] engine: stop jack processing on mutex poison --- crates/engine/src/jack/jack_client.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/engine/src/jack/jack_client.rs b/crates/engine/src/jack/jack_client.rs index 5adb9a3e..b1200529 100644 --- a/crates/engine/src/jack/jack_client.rs +++ b/crates/engine/src/jack/jack_client.rs @@ -85,7 +85,11 @@ impl Jack { // implements audio and MIDI input and output on a realtime basis. ClosureProcessHandler::new(Box::new({ let app = app.clone(); - move|c: &_, s: &_|app.write().unwrap().process(c, s) + move|c: &_, s: &_|if let Ok(mut app) = app.write() { + app.process(c, s) + } else { + Control::Quit + } }) as BoxedAudioHandler<'j>), )?; *self.state.write().unwrap() = Active(client);