destroy()'s 500 ms graceful-shutdown loop probes the pty-host with process.kill(pid, 0) and treats any throw as "process gone, clean exit". On Windows, cross-context processes can return EPERM — the process is alive but we lack permission to signal it. Returning early in that case orphans the pty-host and skips killProcessTree. Detect EPERM and break out of the wait loop so the orphan falls through to killProcessTree. Other error codes (ESRCH etc.) still mean the process is gone. Reported by Copilot review on PR #1025. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| CHANGELOG.md | ||
| package.json | ||
| tsconfig.json | ||