Fix possibly dependent conditions for server shutdown in config worker.
Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
parent
1313eb0b64
commit
292b601755
1 changed files with 8 additions and 4 deletions
|
|
@ -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}");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue