From 1a7add93358b6b2046b2cc87f9a56a3263981f3c Mon Sep 17 00:00:00 2001 From: Andy Gayton Date: Wed, 19 Jun 2024 21:47:15 -0400 Subject: [PATCH] clean up closed subscribers on send --- src/signals.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/signals.rs b/src/signals.rs index 914f41aa52..6d03e2b47b 100644 --- a/src/signals.rs +++ b/src/signals.rs @@ -15,10 +15,8 @@ pub(crate) fn ctrlc_protection( ctrlc::set_handler(move || { ctrlc.store(true, Ordering::SeqCst); - if let Ok(subscribers) = subscribers.lock() { - for subscriber in subscribers.iter() { - let _ = subscriber.send(()); - } + if let Ok(mut subscribers) = subscribers.lock() { + subscribers.retain(|sender| sender.send(()).is_ok()); } }) .expect("Error setting Ctrl-C handler");