Merge pull request #509 from status-im/state

small NimbusState refactoring
This commit is contained in:
andri lim 2020-05-21 12:39:54 +07:00 committed by GitHub
commit bd4069d5ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -27,7 +27,7 @@ const
type type
NimbusState = enum NimbusState = enum
Starting, Running, Stopping, Stopped Starting, Running, Stopping
NimbusNode = ref object NimbusNode = ref object
rpcServer*: RpcHttpServer rpcServer*: RpcHttpServer
@ -36,7 +36,6 @@ type
proc start(nimbus: NimbusNode) = proc start(nimbus: NimbusNode) =
var conf = getConfiguration() var conf = getConfiguration()
nimbus.state = Starting
## logging ## logging
setLogLevel(conf.debug.logLevel) setLogLevel(conf.debug.logLevel)
@ -160,19 +159,18 @@ proc stop*(nimbus: NimbusNode) {.async, gcsafe.} =
nimbus.rpcServer.stop() nimbus.rpcServer.stop()
proc process*(nimbus: NimbusNode) = proc process*(nimbus: NimbusNode) =
if nimbus.state == Running: # Main event loop
# Main loop while nimbus.state == Running:
while nimbus.state == Running: try:
try: poll()
poll() except CatchableError as e:
except CatchableError as e: debug "Exception in poll()", exc = e.name, err = e.msg
debug "Exception in poll()", exc = e.name, err = e.msg
# Stop loop # Stop loop
waitFor nimbus.stop() waitFor nimbus.stop()
when isMainModule: when isMainModule:
var nimbus = NimbusNode() var nimbus = NimbusNode(state: Starting)
## Ctrl+C handling ## Ctrl+C handling
proc controlCHandler() {.noconv.} = proc controlCHandler() {.noconv.} =