From 327fc7deb16768b9eac4cec57ca143f24dfae4f6 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 26 May 2026 10:39:13 +0300 Subject: fix(lsp): stop timer leak in deferShowDocument Replace time.After with time.NewTimer + defer timer.Stop() to prevent a leaked goroutine when the context is cancelled before the timer fires. --- internal/lsp/handlers_document.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/lsp/handlers_document.go b/internal/lsp/handlers_document.go index 7c59aa8..25f4223 100644 --- a/internal/lsp/handlers_document.go +++ b/internal/lsp/handlers_document.go @@ -456,8 +456,10 @@ func (s *Server) deferShowDocument(uri string, sel Range) { s.inflight.Add(1) go func() { defer s.inflight.Done() + timer := time.NewTimer(120 * time.Millisecond) + defer timer.Stop() select { - case <-time.After(120 * time.Millisecond): + case <-timer.C: s.clientShowDocument(uri, &sel) case <-ctx.Done(): } -- cgit v1.2.3