From 9b9923ea42b2a12ebf8183d38fb902b08ab125e0 Mon Sep 17 00:00:00 2001 From: Alexander Morozov Date: Tue, 29 Oct 2019 10:41:55 -0700 Subject: [PATCH] Replace time.After with time.NewTimer (#12945) time.After might leave stray timers if other channels in select triggered early Signed-off-by: Alexander Morozov --- jobs/schedulers.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jobs/schedulers.go b/jobs/schedulers.go index d415c85e1f..52df4eebea 100644 --- a/jobs/schedulers.go +++ b/jobs/schedulers.go @@ -86,11 +86,13 @@ func (schedulers *Schedulers) Start() *Schedulers { } for { + timer := time.NewTimer(1 * time.Minute) select { case <-schedulers.stop: mlog.Debug("Schedulers received stop signal.") + timer.Stop() return - case now = <-time.After(1 * time.Minute): + case now = <-timer.C: cfg := schedulers.jobs.Config() for idx, nextTime := range schedulers.nextRunTimes { @@ -128,6 +130,7 @@ func (schedulers *Schedulers) Start() *Schedulers { } } } + timer.Stop() } }) }()