From 967814161aafca87434d61bac02d95794d2549af Mon Sep 17 00:00:00 2001 From: Chris O'Haver Date: Fri, 4 Mar 2022 02:36:02 -0500 Subject: use tickers instead of time.After to avoid memory leak (#5220) Signed-off-by: Chris O'Haver --- plugin/clouddns/clouddns.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'plugin/clouddns/clouddns.go') diff --git a/plugin/clouddns/clouddns.go b/plugin/clouddns/clouddns.go index 371832440..4556ecac6 100644 --- a/plugin/clouddns/clouddns.go +++ b/plugin/clouddns/clouddns.go @@ -82,12 +82,16 @@ func (h *CloudDNS) Run(ctx context.Context) error { return err } go func() { + delay := 1 * time.Minute + timer := time.NewTimer(delay) + defer timer.Stop() for { + timer.Reset(delay) select { case <-ctx.Done(): log.Debugf("Breaking out of CloudDNS update loop for %v: %v", h.zoneNames, ctx.Err()) return - case <-time.After(1 * time.Minute): + case <-timer.C: if err := h.updateZones(ctx); err != nil && ctx.Err() == nil /* Don't log error if ctx expired. */ { log.Errorf("Failed to update zones %v: %v", h.zoneNames, err) } -- cgit v1.2.3