diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-26 10:39:13 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-26 10:39:13 +0300 |
| commit | 327fc7deb16768b9eac4cec57ca143f24dfae4f6 (patch) | |
| tree | c0197ab51036231acfef34d93f32012714902dab | |
| parent | b097c6eef1cd24ab6c0fa13ac07981e3b5cef24f (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.go | 4 |
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(): } |
