diff --git a/tractor/spawn/_main_thread_forkserver.py b/tractor/spawn/_main_thread_forkserver.py index ecb0de14..75c24197 100644 --- a/tractor/spawn/_main_thread_forkserver.py +++ b/tractor/spawn/_main_thread_forkserver.py @@ -346,7 +346,6 @@ from __future__ import annotations import errno import os import signal -import sys import threading from functools import partial from typing import ( @@ -370,7 +369,6 @@ from ._spawn import ( cancel_on_completion, soft_kill, ) -from ._subint import _has_subints if TYPE_CHECKING: from tractor.discovery._addr import UnwrappedAddress @@ -832,13 +830,6 @@ async def main_thread_forkserver_proc( thread instead of `trio.lowlevel.open_process()`. ''' - if not _has_subints: - raise RuntimeError( - f'The {"main_thread_forkserver"!r} spawn backend ' - f'requires Python 3.14+.\n' - f'Current runtime: {sys.version}' - ) - # Backend-scoped config pulled from `proc_kwargs`. Using # `proc_kwargs` (vs a first-class kwarg on this function) # matches how other backends expose per-spawn tuning diff --git a/tractor/spawn/_spawn.py b/tractor/spawn/_spawn.py index acad8485..c22eeb70 100644 --- a/tractor/spawn/_spawn.py +++ b/tractor/spawn/_spawn.py @@ -135,13 +135,15 @@ def try_set_start_method( case 'mp_spawn': _ctx = mp.get_context('spawn') - case 'trio': + case ( + 'trio' + | 'main_thread_forkserver' + ): _ctx = None case ( 'subint' | 'subint_fork' - | 'main_thread_forkserver' | 'subint_forkserver' ): # All subint-family backends need no `mp.context`;