diff --git a/clientconn.go b/clientconn.go index 8d4e1f2f..5c20f71e 100644 --- a/clientconn.go +++ b/clientconn.go @@ -241,16 +241,16 @@ func (cc *ClientConn) WaitForStateChange(timeout time.Duration, sourceState Conn return false } done := make(chan struct{}) - go func(expired *bool) { + go func() { select { case <-time.After(timeout-time.Since(start)): cc.mu.Lock() - *expired = true + expired = true cc.stateCV.Broadcast() cc.mu.Unlock() case <-done: } - }(&expired) + }() defer close(done) for sourceState == cc.state { cc.stateCV.Wait()