Fix possibly dependent conditions for server shutdown in config worker.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-09-27 17:20:44 +00:00
parent 1313eb0b64
commit 292b601755

View File

@@ -20,11 +20,15 @@ impl crate::Service for Service {
}
async fn worker(self: Arc<Self>) -> Result {
let mut signaled = self.server.signal.subscribe();
while self.server.running() {
if self.server.signal.subscribe().recv().await == Ok(SIGNAL) {
if let Err(e) = self.handle_reload() {
error!("Failed to reload config: {e}");
}
tokio::select! {
() = self.server.until_shutdown() => break,
signal = signaled.recv() => if signal != Ok(SIGNAL) { continue; },
}
if let Err(e) = self.handle_reload() {
error!("Failed to reload config: {e}");
}
}