From a309ef55c910351368687ce02080bddf35d4f0bb Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Sat, 6 Jul 2024 13:53:21 +0000 Subject: [PATCH] restore signal state after channel failures Signed-off-by: Jason Volk --- src/core/server.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/core/server.rs b/src/core/server.rs index e76e4d57..575924d3 100644 --- a/src/core/server.rs +++ b/src/core/server.rs @@ -76,7 +76,10 @@ impl Server { return Err(Error::Err("Shutdown already in progress".into())); } - self.signal("SIGINT") + self.signal("SIGINT").inspect_err(|_| { + self.stopping.store(false, Ordering::Release); + self.reloading.store(false, Ordering::Release); + }) } pub fn restart(&self) -> Result<()> { @@ -85,6 +88,7 @@ impl Server { } self.shutdown() + .inspect_err(|_| self.restarting.store(false, Ordering::Release)) } pub fn shutdown(&self) -> Result<()> { @@ -93,6 +97,7 @@ impl Server { } self.signal("SIGTERM") + .inspect_err(|_| self.stopping.store(false, Ordering::Release)) } pub fn signal(&self, sig: &'static str) -> Result<()> {