Unset debug-mode on root actor exit

Discovered this bug while testing `modden`'s daemon under various
cancelled-while-booting race conditions where sequential tests would
fail a lingering `assert 0` inside `.to_asyncio.run_as_asyncio_guest()`
to (oddly) catch redundant greenback-re-inits..

XD

Needs a test likely ;P
pytest_pluginize
Tyler Goodlet 2025-05-07 10:41:59 -04:00
parent 8c8d79e475
commit a92d0ebf02
1 changed files with 11 additions and 1 deletions

View File

@ -276,7 +276,8 @@ async def open_root_actor(
if ( if (
debug_mode debug_mode
and _spawn._spawn_method == 'trio' and
_spawn._spawn_method == 'trio'
): ):
_state._runtime_vars['_debug_mode'] = True _state._runtime_vars['_debug_mode'] = True
@ -512,8 +513,17 @@ async def open_root_actor(
) )
await actor.cancel(None) # self cancel await actor.cancel(None) # self cancel
finally: finally:
# revert all process-global runtime state
if (
debug_mode
and
_spawn._spawn_method == 'trio'
):
_state._runtime_vars['_debug_mode'] = False
_state._current_actor = None _state._current_actor = None
_state._last_actor_terminated = actor _state._last_actor_terminated = actor
logger.runtime( logger.runtime(
f'Root actor terminated\n' f'Root actor terminated\n'
f')>\n' f')>\n'