From 7bbf06b7911018f2cdda10aa7e4fc76a84ae2e76 Mon Sep 17 00:00:00 2001 From: Jeremiah Millay Date: Wed, 19 Oct 2022 23:42:56 -0400 Subject: [PATCH] Bugfix: deadline.Set() memory leak (issue #208) Signed-off-by: Jeremiah Millay --- deadline/deadline.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/deadline/deadline.go b/deadline/deadline.go index 6f97386..918b18b 100644 --- a/deadline/deadline.go +++ b/deadline/deadline.go @@ -59,11 +59,15 @@ func (d *Deadline) Set(t time.Time) { exceeded := d.exceeded stopped := d.stopped go func() { + timer := time.NewTimer(dur) select { - case <-time.After(dur): + case <-timer.C: close(exceeded) stopped <- false case <-d.stop: + if !timer.Stop() { + <-timer.C + } stopped <- true } }()