forked from goodboy/tractor
				
			Pass func refs
							parent
							
								
									e0ae1608ac
								
							
						
					
					
						commit
						863617d451
					
				|  | @ -8,7 +8,9 @@ async def sleep_and_err(): | ||||||
|     assert 0 |     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) |     await tractor.to_asyncio.run_task(sleep_and_err) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -16,7 +18,7 @@ def test_infected_simple_error(arb_addr): | ||||||
| 
 | 
 | ||||||
|     async def main(): |     async def main(): | ||||||
|         async with tractor.open_nursery() as n: |         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: |     with pytest.raises(tractor.RemoteActorError) as excinfo: | ||||||
|         tractor.run(main, arbiter_addr=arb_addr) |         tractor.run(main, arbiter_addr=arb_addr) | ||||||
|  |  | ||||||
|  | @ -164,16 +164,19 @@ def run_as_asyncio_guest( | ||||||
|     :) |     :) | ||||||
|     """ |     """ | ||||||
|     async def aio_main(trio_main): |     async def aio_main(trio_main): | ||||||
|  | 
 | ||||||
|         loop = asyncio.get_running_loop() |         loop = asyncio.get_running_loop() | ||||||
| 
 | 
 | ||||||
|         trio_done_fut = asyncio.Future() |         trio_done_fut = asyncio.Future() | ||||||
| 
 | 
 | ||||||
|         def trio_done_callback(main_outcome): |         def trio_done_callback(main_outcome): | ||||||
|  | 
 | ||||||
|             log.info(f"trio_main finished: {main_outcome!r}") |             log.info(f"trio_main finished: {main_outcome!r}") | ||||||
|             trio_done_fut.set_result(main_outcome) |             trio_done_fut.set_result(main_outcome) | ||||||
| 
 | 
 | ||||||
|         # start the infection: run trio on the asyncio loop in "guest mode" |         # start the infection: run trio on the asyncio loop in "guest mode" | ||||||
|         log.info(f"Infecting asyncio process with {trio_main}") |         log.info(f"Infecting asyncio process with {trio_main}") | ||||||
|  | 
 | ||||||
|         trio.lowlevel.start_guest_run( |         trio.lowlevel.start_guest_run( | ||||||
|             trio_main, |             trio_main, | ||||||
|             run_sync_soon_threadsafe=loop.call_soon_threadsafe, |             run_sync_soon_threadsafe=loop.call_soon_threadsafe, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue