From 4b180c89bd6b0d40acfc7678cc9ac0423a9fc4bb Mon Sep 17 00:00:00 2001 From: Tanguy Date: Tue, 6 Dec 2022 11:51:33 +0100 Subject: [PATCH] Fix Ctrl-C quitting (#1416) --- apps/wakunode2/wakunode2.nim | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/wakunode2/wakunode2.nim b/apps/wakunode2/wakunode2.nim index 7001b8df3..029fbf0b8 100644 --- a/apps/wakunode2/wakunode2.nim +++ b/apps/wakunode2/wakunode2.nim @@ -687,14 +687,17 @@ when isMainModule: ## Setup shutdown hooks for this process. ## Stop node gracefully on shutdown. + proc asyncStopper(node: WakuNode) {.async.} = + await node.stop() + quit(QuitSuccess) + # Handle Ctrl-C SIGINT proc handleCtrlC() {.noconv.} = when defined(windows): # workaround for https://github.com/nim-lang/Nim/issues/4057 setupForeignThreadGc() notice "Shutting down after receiving SIGINT" - waitFor node.stop() - quit(QuitSuccess) + asyncSpawn asyncStopper(node) setControlCHook(handleCtrlC) @@ -702,8 +705,7 @@ when isMainModule: when defined(posix): proc handleSigterm(signal: cint) {.noconv.} = notice "Shutting down after receiving SIGTERM" - waitFor node.stop() - quit(QuitSuccess) + asyncSpawn asyncStopper(node) c_signal(ansi_c.SIGTERM, handleSigterm)