Allow daemonizing top level actor; don't require main func

drop_main_kwarg
Tyler Goodlet 2018-08-03 09:41:18 -04:00
parent db08dbad3b
commit 1da69b1396
1 changed files with 8 additions and 5 deletions

View File

@ -624,12 +624,15 @@ async def _start_actor(actor, main, host, port, arbiter_addr, nursery=None):
arbiter_addr=arbiter_addr, arbiter_addr=arbiter_addr,
) )
) )
if main is not None:
result = await main() result = await main()
# XXX: If spawned locally, the actor is cancelled when this # XXX: If spawned with a dedicated "main function",
# context is complete given that there are no more active # the actor is cancelled when this context is complete
# peer channels connected to it. # given that there are no more active peer channels connected to it.
actor.cancel_server() actor.cancel_server()
# block on actor to complete
# unset module state # unset module state
_state._current_actor = None _state._current_actor = None
log.info("Completed async main") log.info("Completed async main")