mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-30 01:41:43 +00:00
refactor(process): extend preexec_fn→start_new_session swap to remaining Popen sites
PR #8399 replaced preexec_fn=os.setsid with start_new_session=<bool> in tools/environments/local.py to use CPython's thread-safe POSIX fastpath instead of a between-fork-and-exec callback. Apply the same swap to the other three files covered by tests/tools/test_windows_compat.py so all Popen call sites use a consistent idiom. Also: - Strip a trailing-whitespace line introduced by the original PR. - Update CONTRIBUTING.md + website/docs/developer-guide/contributing.md to recommend start_new_session in the cross-platform process management section. - Fix a stale docstring reference in tools/environments/base.py (_popen_bash). - Extend test_windows_compat.py with a parallel regression guard that rejects bare start_new_session=True (must be gated on _IS_WINDOWS). Scope note: this is code hygiene, not a fix for #8340 — the two forms invoke the same setsid() syscall, so this swap alone does not change behavior for the 'setsid ... & disown' hang scenario in that issue. #8340 remains open.
This commit is contained in:
parent
94a1990404
commit
c74030a11d
8 changed files with 31 additions and 13 deletions
|
|
@ -115,7 +115,7 @@ def _popen_bash(
|
|||
"""Spawn a subprocess with standard stdout/stderr/stdin setup.
|
||||
|
||||
If *stdin_data* is provided, writes it asynchronously via :func:`_pipe_stdin`.
|
||||
Backends with special Popen needs (e.g. local's ``preexec_fn``) can bypass
|
||||
Backends with special Popen needs (e.g. local's ``start_new_session``) can bypass
|
||||
this and call :func:`_pipe_stdin` directly.
|
||||
"""
|
||||
proc = subprocess.Popen(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue