Fix missing `_ctx` define when on Windows
							parent
							
								
									c6f3ab5ae2
								
							
						
					
					
						commit
						00fc734580
					
				| 
						 | 
				
			
			@ -30,20 +30,21 @@ from ._actor import Actor, ActorFailure
 | 
			
		|||
 | 
			
		||||
log = get_logger('tractor')
 | 
			
		||||
 | 
			
		||||
# use trip as our default on *nix systems for now
 | 
			
		||||
if platform.system() != 'Windows':
 | 
			
		||||
    _spawn_method: str = "trio_run_in_process"
 | 
			
		||||
else:
 | 
			
		||||
    _spawn_method = "spawn"
 | 
			
		||||
 | 
			
		||||
# placeholder for an mp start context if so using that backend
 | 
			
		||||
_ctx: Optional[mp.context.BaseContext] = None
 | 
			
		||||
_spawn_method: str = "spawn"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if platform.system() == 'Windows':
 | 
			
		||||
    _spawn_method = "spawn"
 | 
			
		||||
    _ctx = mp.get_context("spawn")
 | 
			
		||||
 | 
			
		||||
    async def proc_waiter(proc: mp.Process) -> None:
 | 
			
		||||
        await trio.hazmat.WaitForSingleObject(proc.sentinel)
 | 
			
		||||
else:
 | 
			
		||||
    # *NIX systems use ``trio_run_in_process` as our default (for now)
 | 
			
		||||
    import trio_run_in_process
 | 
			
		||||
    _spawn_method = "trio_run_in_process"
 | 
			
		||||
 | 
			
		||||
    async def proc_waiter(proc: mp.Process) -> None:
 | 
			
		||||
        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
 | 
			
		||||
    spawning backend".
 | 
			
		||||
 | 
			
		||||
    If the desired method is not supported this function will error. On Windows
 | 
			
		||||
    the only supported option is the ``multiprocessing`` "spawn" method. The default
 | 
			
		||||
    on *nix systems is ``trio_run_in_process``.
 | 
			
		||||
    If the desired method is not supported this function will error. On
 | 
			
		||||
    Windows the only supported option is the ``multiprocessing`` "spawn"
 | 
			
		||||
    method. The default on *nix systems is ``trio_run_in_process``.
 | 
			
		||||
    """
 | 
			
		||||
    global _ctx
 | 
			
		||||
    global _spawn_method
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue