Set _is_root runtime var in _main()
							parent
							
								
									285dea04ea
								
							
						
					
					
						commit
						d191d03179
					
				| 
						 | 
					@ -20,8 +20,8 @@ from ._state import current_actor
 | 
				
			||||||
from . import _state
 | 
					from . import _state
 | 
				
			||||||
from ._exceptions import RemoteActorError, ModuleNotExposed
 | 
					from ._exceptions import RemoteActorError, ModuleNotExposed
 | 
				
			||||||
from ._debug import breakpoint, post_mortem
 | 
					from ._debug import breakpoint, post_mortem
 | 
				
			||||||
from . import msg
 | 
					 | 
				
			||||||
from . import _spawn
 | 
					from . import _spawn
 | 
				
			||||||
 | 
					from . import msg
 | 
				
			||||||
from . import to_asyncio
 | 
					from . import to_asyncio
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,16 +62,23 @@ async def _main(
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    logger = log.get_logger('tractor')
 | 
					    logger = log.get_logger('tractor')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # mark top most level process as root actor
 | 
				
			||||||
 | 
					    _state._runtime_vars['_is_root'] = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if start_method is not None:
 | 
					    if start_method is not None:
 | 
				
			||||||
        _spawn.try_set_start_method(start_method)
 | 
					        _spawn.try_set_start_method(start_method)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if debug_mode and _spawn._spawn_method == 'trio':
 | 
					    if debug_mode and _spawn._spawn_method == 'trio':
 | 
				
			||||||
        _state._runtime_vars['_debug_mode'] = True
 | 
					        _state._runtime_vars['_debug_mode'] = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # expose internal debug module to every actor allowing
 | 
					        # expose internal debug module to every actor allowing
 | 
				
			||||||
        # for use of ``await tractor.breakpoint()``
 | 
					        # for use of ``await tractor.breakpoint()``
 | 
				
			||||||
        kwargs.setdefault('rpc_module_paths', []).append('tractor._debug')
 | 
					        kwargs.setdefault('rpc_module_paths', []).append('tractor._debug')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    elif debug_mode:
 | 
					    elif debug_mode:
 | 
				
			||||||
        raise RuntimeError("Debug mode is only supported for the `trio` backend!")
 | 
					        raise RuntimeError(
 | 
				
			||||||
 | 
					            "Debug mode is only supported for the `trio` backend!"
 | 
				
			||||||
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    main = partial(async_fn, *args)
 | 
					    main = partial(async_fn, *args)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -139,9 +146,6 @@ def run(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    This is tractor's main entry and the start point for any async actor.
 | 
					    This is tractor's main entry and the start point for any async actor.
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    # mark top most level process as root actor
 | 
					 | 
				
			||||||
    _state._runtime_vars['_is_root'] = True
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return trio.run(
 | 
					    return trio.run(
 | 
				
			||||||
        partial(
 | 
					        partial(
 | 
				
			||||||
            # our entry
 | 
					            # our entry
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue