forked from goodboy/tractor
1
0
Fork 0

Fix missing `_ctx` define when on Windows

example_tests
Tyler Goodlet 2020-02-07 20:01:41 -05:00
parent c6f3ab5ae2
commit 00fc734580
1 changed files with 10 additions and 9 deletions

View File

@ -30,20 +30,21 @@ from ._actor import Actor, ActorFailure
log = get_logger('tractor') log = get_logger('tractor')
# use trip as our default on *nix systems for now # placeholder for an mp start context if so using that backend
if platform.system() != 'Windows':
_spawn_method: str = "trio_run_in_process"
else:
_spawn_method = "spawn"
_ctx: Optional[mp.context.BaseContext] = None _ctx: Optional[mp.context.BaseContext] = None
_spawn_method: str = "spawn"
if platform.system() == 'Windows': if platform.system() == 'Windows':
_spawn_method = "spawn"
_ctx = mp.get_context("spawn")
async def proc_waiter(proc: mp.Process) -> None: async def proc_waiter(proc: mp.Process) -> None:
await trio.hazmat.WaitForSingleObject(proc.sentinel) await trio.hazmat.WaitForSingleObject(proc.sentinel)
else: else:
# *NIX systems use ``trio_run_in_process` as our default (for now)
import trio_run_in_process import trio_run_in_process
_spawn_method = "trio_run_in_process"
async def proc_waiter(proc: mp.Process) -> None: async def proc_waiter(proc: mp.Process) -> None:
await trio.hazmat.wait_readable(proc.sentinel) await trio.hazmat.wait_readable(proc.sentinel)
@ -53,9 +54,9 @@ def try_set_start_method(name: str) -> Optional[mp.context.BaseContext]:
"""Attempt to set the start method for process starting, aka the "actor """Attempt to set the start method for process starting, aka the "actor
spawning backend". spawning backend".
If the desired method is not supported this function will error. On Windows If the desired method is not supported this function will error. On
the only supported option is the ``multiprocessing`` "spawn" method. The default Windows the only supported option is the ``multiprocessing`` "spawn"
on *nix systems is ``trio_run_in_process``. method. The default on *nix systems is ``trio_run_in_process``.
""" """
global _ctx global _ctx
global _spawn_method global _spawn_method