Repository navigation
Reap command descendants on timeout and interruption - #427
Merged
CaelmBleidd merged 2 commits intoOct 10, 2026
Merged
Conversation
Contributor
CaelmBleidd
marked this pull request as ready for review
October 10, 2026 17:49
CaelmBleidd
force-pushed
the
caelmbleidd/review-process-descendants-20261008
branch
from
October 10, 2026 17:50
07be4d1 to
164e1d5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Timeout and interruption now request termination of visible command descendants before destroying and reaping the direct parent. Cleanup errors do not prevent parent reaping or replace the original interruption; repeated interruption preserves the thread flag and suppressed failures.
Validation: independent core, lifecycle and hygiene review of the unchanged process source; final integration tree passed the complete ETS suite (235 passed, one inherited Demo_Calc project fixture skip (EtsFromJsonTest.testLoadEtsProject)), including all seven ProcessUtil tests on JDK 21. The matching frontend source passed its build and 635 tests. Original-head Java 8 verification passed five parent/output tests and skipped exactly two descendant-capability tests; that compatibility evidence is historical, not a fresh integrated Java 8 run.
Boundary: Java 8 retains parent-only cleanup. Java 9+ sends termination to the current descendant snapshot, while only the direct parent is waited for; detached/reparented or later-created descendants are outside this bounded fix.