From faff328d62a08d8b5dc804fb11bb565b6d4dfd50 Mon Sep 17 00:00:00 2001 From: Ying Li Date: Thu, 15 Oct 2015 11:43:17 -0700 Subject: [PATCH] Simplify by using a single buffered channel, instead of having a done channel and a regular channel - thanks @aaronlehmann! Signed-off-by: Ying Li --- signer/signer_trust.go | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/signer/signer_trust.go b/signer/signer_trust.go index 25cd83e78f..c7f8509eac 100644 --- a/signer/signer_trust.go +++ b/signer/signer_trust.go @@ -125,17 +125,13 @@ func (trust *NotarySigner) checkServiceHealth( // We still want to time out getting health, because the connection could // have disconnected sometime between when we checked the connection and // when we try to make an RPC call. - channel := make(chan error) - done := make(chan struct{}) + channel := make(chan error, 1) go func() { status, err := check(context.Background(), &pb.Void{}) if len(status.Status) > 0 { err = fmt.Errorf("%s not healthy", serviceName) } - select { - case <-done: - case channel <- err: - } + channel <- err }() var returnErr error select { @@ -144,7 +140,5 @@ func (trust *NotarySigner) checkServiceHealth( case <-time.After(time.Second * time.Duration(timeout)): returnErr = fmt.Errorf("Timed out connecting to %s after %s", serviceName, timeout) } - close(done) - close(channel) return returnErr }