From 3b46be99aeb54e469d8ed973a7c7d02c7f1d8fe5 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Mon, 21 Dec 2020 21:08:53 -0500 Subject: [PATCH] Pass func refs --- tests/test_infected_asyncio.py | 6 ++++-- tractor/to_asyncio.py | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/test_infected_asyncio.py b/tests/test_infected_asyncio.py index 6d5b864..def1776 100644 --- a/tests/test_infected_asyncio.py +++ b/tests/test_infected_asyncio.py @@ -8,7 +8,9 @@ async def sleep_and_err(): assert 0 -async def trio_main(): +async def asyncio_actor(): + assert tractor.current_actor().is_infected_aio() + await tractor.to_asyncio.run_task(sleep_and_err) @@ -16,7 +18,7 @@ def test_infected_simple_error(arb_addr): async def main(): async with tractor.open_nursery() as n: - await n.run_in_actor('asyncio_actor', trio_main, infected_asyncio=True) + await n.run_in_actor(asyncio_actor, infected_asyncio=True) with pytest.raises(tractor.RemoteActorError) as excinfo: tractor.run(main, arbiter_addr=arb_addr) diff --git a/tractor/to_asyncio.py b/tractor/to_asyncio.py index 1fa923d..6e46903 100644 --- a/tractor/to_asyncio.py +++ b/tractor/to_asyncio.py @@ -164,16 +164,19 @@ def run_as_asyncio_guest( :) """ async def aio_main(trio_main): + loop = asyncio.get_running_loop() trio_done_fut = asyncio.Future() def trio_done_callback(main_outcome): + log.info(f"trio_main finished: {main_outcome!r}") trio_done_fut.set_result(main_outcome) # start the infection: run trio on the asyncio loop in "guest mode" log.info(f"Infecting asyncio process with {trio_main}") + trio.lowlevel.start_guest_run( trio_main, run_sync_soon_threadsafe=loop.call_soon_threadsafe,