From c01d2f8aea7eb5769f15517ab2b2bc0b7bd3c30d Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Sun, 10 Oct 2021 16:46:29 -0400 Subject: [PATCH] Don't double request a cancelled actor --- tractor/_supervise.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tractor/_supervise.py b/tractor/_supervise.py index 4b9f733..1d6b85d 100644 --- a/tractor/_supervise.py +++ b/tractor/_supervise.py @@ -198,7 +198,8 @@ class ActorNursery: # one-cancels-all strat async with trio.open_nursery() as cancel_sender: for subactor, proc, portal in childs.values(): - cancel_sender.start_soon(portal.cancel_actor) + if proc.poll() is None and not portal.cancel_called: + cancel_sender.start_soon(portal.cancel_actor) # cancel all spawner tasks # self._spawn_n.cancel_scope.cancel() @@ -298,7 +299,6 @@ async def _open_and_supervise_one_cancels_all_nursery( # same as a user code failure. except BaseException as err: - print('ERROR') # anursery._join_procs.set() src_err = err