move ctrl-c handler out of exported function (#5347)
otherwise it gets set also for unit tests that callit which interferes with gdb.
This commit is contained in:
parent
29dbab916c
commit
778a209d09
|
@ -1622,27 +1622,6 @@ proc run(node: BeaconNode) {.raises: [CatchableError].} =
|
||||||
asyncSpawn runQueueProcessingLoop(node.blockProcessor)
|
asyncSpawn runQueueProcessingLoop(node.blockProcessor)
|
||||||
asyncSpawn runKeystoreCachePruningLoop(node.keystoreCache)
|
asyncSpawn runKeystoreCachePruningLoop(node.keystoreCache)
|
||||||
|
|
||||||
## Ctrl+C handling
|
|
||||||
proc controlCHandler() {.noconv.} =
|
|
||||||
when defined(windows):
|
|
||||||
# workaround for https://github.com/nim-lang/Nim/issues/4057
|
|
||||||
try:
|
|
||||||
setupForeignThreadGc()
|
|
||||||
except Exception as exc: raiseAssert exc.msg # shouldn't happen
|
|
||||||
notice "Shutting down after having received SIGINT"
|
|
||||||
bnStatus = BeaconNodeStatus.Stopping
|
|
||||||
try:
|
|
||||||
setControlCHook(controlCHandler)
|
|
||||||
except Exception as exc: # TODO Exception
|
|
||||||
warn "Cannot set ctrl-c handler", msg = exc.msg
|
|
||||||
|
|
||||||
# equivalent SIGTERM handler
|
|
||||||
when defined(posix):
|
|
||||||
proc SIGTERMHandler(signal: cint) {.noconv.} =
|
|
||||||
notice "Shutting down after having received SIGTERM"
|
|
||||||
bnStatus = BeaconNodeStatus.Stopping
|
|
||||||
c_signal(ansi_c.SIGTERM, SIGTERMHandler)
|
|
||||||
|
|
||||||
# main event loop
|
# main event loop
|
||||||
while bnStatus == BeaconNodeStatus.Running:
|
while bnStatus == BeaconNodeStatus.Running:
|
||||||
poll() # if poll fails, the network is broken
|
poll() # if poll fails, the network is broken
|
||||||
|
@ -1882,6 +1861,27 @@ proc doRunBeaconNode(config: var BeaconNodeConf, rng: ref HmacDrbgContext) {.rai
|
||||||
for node in metadata.bootstrapNodes:
|
for node in metadata.bootstrapNodes:
|
||||||
config.bootstrapNodes.add node
|
config.bootstrapNodes.add node
|
||||||
|
|
||||||
|
## Ctrl+C handling
|
||||||
|
proc controlCHandler() {.noconv.} =
|
||||||
|
when defined(windows):
|
||||||
|
# workaround for https://github.com/nim-lang/Nim/issues/4057
|
||||||
|
try:
|
||||||
|
setupForeignThreadGc()
|
||||||
|
except Exception as exc: raiseAssert exc.msg # shouldn't happen
|
||||||
|
notice "Shutting down after having received SIGINT"
|
||||||
|
bnStatus = BeaconNodeStatus.Stopping
|
||||||
|
try:
|
||||||
|
setControlCHook(controlCHandler)
|
||||||
|
except Exception as exc: # TODO Exception
|
||||||
|
warn "Cannot set ctrl-c handler", msg = exc.msg
|
||||||
|
|
||||||
|
# equivalent SIGTERM handler
|
||||||
|
when defined(posix):
|
||||||
|
proc SIGTERMHandler(signal: cint) {.noconv.} =
|
||||||
|
notice "Shutting down after having received SIGTERM"
|
||||||
|
bnStatus = BeaconNodeStatus.Stopping
|
||||||
|
c_signal(ansi_c.SIGTERM, SIGTERMHandler)
|
||||||
|
|
||||||
let node = BeaconNode.init(rng, config, metadata)
|
let node = BeaconNode.init(rng, config, metadata)
|
||||||
|
|
||||||
if node.dag.cfg.DENEB_FORK_EPOCH != FAR_FUTURE_EPOCH:
|
if node.dag.cfg.DENEB_FORK_EPOCH != FAR_FUTURE_EPOCH:
|
||||||
|
|
Loading…
Reference in New Issue