From 22a235742c5e92eab21c6312f3e3880ebda7f05f Mon Sep 17 00:00:00 2001 From: Henrik Johansson Date: Mon, 8 Jul 2019 11:40:30 +0200 Subject: [PATCH] gemini: using sync.Once instead of hand crafted version --- cmd/gemini/status.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/gemini/status.go b/cmd/gemini/status.go index 465dbe3e..e63748c1 100644 --- a/cmd/gemini/status.go +++ b/cmd/gemini/status.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "io" + "sync" "github.com/briandowns/spinner" "github.com/pkg/errors" @@ -62,9 +63,9 @@ func (r Status) String() string { } func sampleStatus(p *Pump, c chan Status, sp *spinner.Spinner, logger *zap.Logger) Status { + failfastDone := sync.Once{} logger = logger.Named("sample_results") var testRes Status - done := false for res := range c { testRes = res.Merge(&testRes) if sp != nil { @@ -72,11 +73,10 @@ func sampleStatus(p *Pump, c chan Status, sp *spinner.Spinner, logger *zap.Logge } if testRes.ReadErrors > 0 || testRes.WriteErrors > 0 { if failFast { - if !done { - done = true + failfastDone.Do(func() { logger.Warn("Errors detected. Exiting.") p.Stop() - } + }) } } }