diff --git a/doc/concurrency-resource-audit.md b/doc/concurrency-resource-audit.md index b7ef904..0c7bb4f 100644 --- a/doc/concurrency-resource-audit.md +++ b/doc/concurrency-resource-audit.md @@ -268,13 +268,9 @@ Cancellation removes the request from the active set. `NextPending` discards sta ### M11. LSP timed-out requests retain channels until late responses -**Evidence:** `tools/lsp/server.go:146-176`. +**Status:** Resolved by the existing request cleanup. -After timeout, the pending request is deleted, but a late response keeps the associated channel alive until it arrives or the process exits. - -**Impact:** bounded retention under repeated timeouts; potentially significant with a stalled server. - -**Remediation:** bound outstanding requests and make shutdown release all pending waiters. +Timeout and send-error paths delete the request channel from `pending`. Late responses find no pending entry and are discarded, so they do not retain the channel. Shutdown also releases all pending waiters. ### M12. `pushProcInterrupt` has weak connection ownership