summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-26 10:39:13 +0300
committerPaul Buetow <paul@buetow.org>2026-05-26 10:39:13 +0300
commit327fc7deb16768b9eac4cec57ca143f24dfae4f6 (patch)
treec0197ab51036231acfef34d93f32012714902dab
parentb097c6eef1cd24ab6c0fa13ac07981e3b5cef24f (diff)
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.
-rw-r--r--internal/lsp/handlers_document.go4
1 files changed, 3 insertions, 1 deletions
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():
}