Shield around root actor cancel

mp_teardown_hardening
Tyler Goodlet 2021-04-28 22:19:36 -04:00
parent 607c48f1ac
commit c4b42000eb
1 changed files with 4 additions and 1 deletions

View File

@ -169,10 +169,13 @@ async def open_root_actor(
logger.exception("Actor crashed:") logger.exception("Actor crashed:")
await _debug._maybe_enter_pm(err) await _debug._maybe_enter_pm(err)
# always re-raise
raise raise
finally: finally:
logger.info("Shutting down root actor") logger.info("Shutting down root actor")
await actor.cancel() with trio.CancelScope(shield=True):
await actor.cancel()
finally: finally:
_state._current_actor = None _state._current_actor = None
logger.info("Root actor terminated") logger.info("Root actor terminated")