forked from goodboy/tractor
1
0
Fork 0

Always cancel the asyncio task?

infect_asyncio
Tyler Goodlet 2021-09-18 14:10:21 -04:00
parent d9dac3f36c
commit c262b1a3e8
1 changed files with 7 additions and 6 deletions

View File

@ -55,7 +55,8 @@ def _run_asyncio_task(
or stream the result back to ``trio``. or stream the result back to ``trio``.
""" """
assert current_actor().is_infected_aio() if not current_actor().is_infected_aio():
raise RuntimeError("`infect_asyncio` mode is not enabled!?")
# ITC (inter task comms) # ITC (inter task comms)
from_trio = asyncio.Queue(qsize) # type: ignore from_trio = asyncio.Queue(qsize) # type: ignore
@ -174,12 +175,12 @@ async def run_task(
else: else:
raise raise
except trio.Cancelled: # except trio.Cancelled:
if not task.done(): # raise
finally:
# if not task.done():
task.cancel() task.cancel()
raise
# TODO: explicit api for the streaming case where # TODO: explicit api for the streaming case where
# we pull from the mem chan in an async generator? # we pull from the mem chan in an async generator?