From 13c61c8c6a35243ebf5bb0920095fe05945623e6 Mon Sep 17 00:00:00 2001 From: wreulicke Date: Wed, 25 Nov 2020 21:56:03 +0900 Subject: [PATCH] Use ticker instead of time.After --- firequeue.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/firequeue.go b/firequeue.go index 14bf716..e26c48f 100644 --- a/firequeue.go +++ b/firequeue.go @@ -138,11 +138,16 @@ func (q *Queue) loop(ctx context.Context) { var bf = backoff.NewExponentialBackOff() bf.MaxElapsedTime = 0 var nextInterval time.Duration = 0 + // Use 1 instead of 0 because time.NewTicker disallow zero + ticker := time.NewTicker(1) + defer ticker.Stop() + for { + ticker.Reset(nextInterval) select { case <-ctx.Done(): return - case <-time.After(nextInterval): + case <-ticker.C: nextInterval = q.put(bf) } }