diff --git a/clientconn.go b/clientconn.go index 8c6af633..91b042fc 100644 --- a/clientconn.go +++ b/clientconn.go @@ -298,13 +298,15 @@ func DialContext(ctx context.Context, target string, opts ...DialOption) (*Clien case <-ctx.Done(): return nil, ctx.Err() case err := <-waitC: + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } if err != nil { cc.Close() return nil, err } - case <-cc.ctx.Done(): - cc.Close() - return nil, cc.ctx.Err() case <-timeoutCh: cc.Close() return nil, ErrClientConnTimeout