From 5dcb4c9a34c337fa8eb22c7c0a9d425226cf5469 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Thu, 12 Feb 2026 05:39:14 +0000 Subject: [PATCH] Fix presence worker shutdown sequence. Signed-off-by: Jason Volk --- src/service/presence/mod.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/service/presence/mod.rs b/src/service/presence/mod.rs index fd6aa2ec..9f630d63 100644 --- a/src/service/presence/mod.rs +++ b/src/service/presence/mod.rs @@ -64,7 +64,7 @@ impl crate::Service for Service { let mut presence_timers: FuturesUnordered<_> = FuturesUnordered::new(); let mut timer_handles: HashMap = HashMap::new(); - while !receiver.is_closed() { + while !receiver.is_closed() && self.services.server.running() { tokio::select! { Some(result) = presence_timers.next() => { let Ok((user_id, count)) = result else { @@ -102,10 +102,6 @@ impl crate::Service for Service { } } - Ok(()) - } - - async fn interrupt(&self) { // set the server user as offline _ = self .maybe_ping_presence( @@ -115,6 +111,10 @@ impl crate::Service for Service { ) .await; + Ok(()) + } + + async fn interrupt(&self) { let (timer_sender, _) = &self.timer_channel; if !timer_sender.is_closed() { timer_sender.close();