mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-09 04:02:35 +00:00
test(code-runtime-python): cover the reply-pump closed-loop guard; align setsid docs
The closed-loop reply-pump guard now ships with a deterministic regression test: a worker thread abandons a binding so its loop closes, the host answers that call before a later binding, and the pump must survive the closed-loop call_soon_threadsafe to deliver the later reply (host-gated ordering makes it deterministic; unguarding the pump hangs the later binding to the wall clock). Align the quiescence self-description with the shipped setsid limitation: teardown()'s JSDoc and the Agent Note's Problem line now qualify "no subprocess outlives the fiber" to subprocesses that stay in the child's process group, with a setsid()-escape exception pointing at the README. Tighten the setsid-orphan fixture's self-timeout to 5s and its upper-bound assertion to <4000ms so a failed deadline backstop is a sharper red. Register the new regression tests in the note.
This commit is contained in:
@@ -527,7 +527,11 @@ export class PythonCodeRuntime extends CodeRuntime {
|
||||
|
||||
/**
|
||||
* Dispose to quiescence: fail every in-flight run as aborted and AWAIT each
|
||||
* child's exit so no subprocess outlives the fiber.
|
||||
* child's exit so no subprocess that stays in the child's process group
|
||||
* outlives the fiber. A descendant that escaped the group with `setsid()` /
|
||||
* `start_new_session=True` is unreachable by `kill(-pid)` and is the documented
|
||||
* exception (see the package README's Known Limitations); the process-group
|
||||
* teardown reaps everything that stays in the group.
|
||||
*/
|
||||
private async teardown(): Promise<void> {
|
||||
this.disposed = true
|
||||
|
||||
Reference in New Issue
Block a user