Interrupt retry Sleep() on client connection shutdown

Otherwise transportMonitor hangs around long enough after Close() that it
looks like a goroutine leak.
This commit is contained in:
Anthony Romano
2016-05-12 13:08:31 -07:00
parent a5e20f67d1
commit 46f2afd293

View File

@ -491,7 +491,10 @@ func (cc *Conn) resetTransport(closeTransport bool) error {
return ErrClientConnTimeout return ErrClientConnTimeout
} }
closeTransport = false closeTransport = false
time.Sleep(sleepTime) select {
case <-time.After(sleepTime):
case <-cc.shutdownChan:
}
retries++ retries++
grpclog.Printf("grpc: Conn.resetTransport failed to create client transport: %v; Reconnecting to %q", err, cc.target) grpclog.Printf("grpc: Conn.resetTransport failed to create client transport: %v; Reconnecting to %q", err, cc.target)
continue continue