diff --git a/tractor/_supervise.py b/tractor/_supervise.py index d9bcbab..b8c8567 100644 --- a/tractor/_supervise.py +++ b/tractor/_supervise.py @@ -301,7 +301,7 @@ async def _open_and_supervise_one_cancels_all_nursery( ) -> typing.AsyncGenerator[ActorNursery, None]: # the collection of errors retreived from spawned sub-actors - errors: dict[tuple[str, str], Exception] = {} + errors: dict[tuple[str, str], BaseException] = {} # This is the outermost level "deamon actor" nursery. It is awaited # **after** the below inner "run in actor nursery". This allows for @@ -310,7 +310,6 @@ async def _open_and_supervise_one_cancels_all_nursery( # actors spawned in "daemon mode" (aka started using # ``ActorNursery.start_actor()``). - err: BaseExpection | None = None # errors from this daemon actor nursery bubble up to caller async with trio.open_nursery() as da_nursery: try: @@ -412,9 +411,9 @@ async def _open_and_supervise_one_cancels_all_nursery( BaseExceptionGroup, trio.Cancelled - ) as err: - + ) as err: # noqa errors[actor.uid] = err + # XXX: yet another guard before allowing the cancel # sequence in case a (single) child is in debug. await maybe_wait_for_debugger(