From fdb574b608edbf558d73887f09c47ea07346a107 Mon Sep 17 00:00:00 2001 From: Tom Wilkie Date: Mon, 12 Mar 2018 14:27:48 +0000 Subject: [PATCH] Review feedback. --- storage/remote/queue_manager.go | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/storage/remote/queue_manager.go b/storage/remote/queue_manager.go index 01537aa3d..7d52ed1ef 100644 --- a/storage/remote/queue_manager.go +++ b/storage/remote/queue_manager.go @@ -430,14 +430,15 @@ func (s *shards) runShard(i int) { pendingSamples := model.Samples{} timer := time.NewTimer(s.qm.cfg.BatchSendDeadline) - defer func() { + stop := func() { if !timer.Stop() { select { case <-timer.C: default: } } - }() + } + defer stop() for { select { @@ -454,16 +455,11 @@ func (s *shards) runShard(i int) { queueLength.WithLabelValues(s.qm.queueName).Dec() pendingSamples = append(pendingSamples, sample) - for len(pendingSamples) >= s.qm.cfg.MaxSamplesPerSend { + if len(pendingSamples) >= s.qm.cfg.MaxSamplesPerSend { s.sendSamples(pendingSamples[:s.qm.cfg.MaxSamplesPerSend]) pendingSamples = pendingSamples[s.qm.cfg.MaxSamplesPerSend:] - if !timer.Stop() { - select { - case <-timer.C: - default: - } - } + stop() timer.Reset(s.qm.cfg.BatchSendDeadline) } @@ -472,6 +468,7 @@ func (s *shards) runShard(i int) { s.sendSamples(pendingSamples) pendingSamples = pendingSamples[:0] } + timer.Reset(s.qm.cfg.BatchSendDeadline) } } }