Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
node: Fix "signals" thread to continue upon other signal
✗ CI failure Derick Eddington committed 1 year ago
commit d64180458d014e47dfe7944c9d50cd6f5fc6df1b
parent 123f7eb6bbb3cb3f39257b325b2256ecd415fbe4
1 failed (1 total) View logs
1 file changed +15 -4
modified radicle-node/src/runtime.rs
@@ -289,10 +289,21 @@ impl Runtime {
            let handle = self.handle.clone();
            || control::listen(self.control, handle)
        });
-
        let _signals = thread::spawn(&self.id, "signals", move || {
-
            if let Ok(Signal::Terminate | Signal::Interrupt) = self.signals.recv() {
-
                log::info!(target: "node", "Termination signal received; shutting down..");
-
                self.handle.shutdown().ok();
+
        let _signals = thread::spawn(&self.id, "signals", move || loop {
+
            match self.signals.recv() {
+
                Ok(Signal::Terminate | Signal::Interrupt) => {
+
                    log::info!(target: "node", "Termination signal received; shutting down..");
+
                    self.handle.shutdown().ok();
+
                    break;
+
                }
+
                Ok(Signal::Hangup) => {
+
                    log::debug!(target: "node", "Ignoring received SIGHUP");
+
                }
+
                Ok(Signal::WindowChanged) => {}
+
                Err(_) => {
+
                    log::warn!(target: "node", "Signal-notifications channel disconnected");
+
                    break;
+
                }
            }
        });