fix another data race along with goaway

This commit is contained in:
iamqizhao 2016-07-28 19:47:38 -07:00
parent 5876dcba5e
commit a09c6888cc
1 changed files with 1 additions and 1 deletions

View File

@ -367,6 +367,7 @@ func (cc *ClientConn) newAddrConn(addr Address, skipWait bool) error {
addr: addr, addr: addr,
dopts: cc.dopts, dopts: cc.dopts,
} }
ac.stateCV = sync.NewCond(&ac.mu)
ac.dopts.copts.Cancel = make(chan struct{}) ac.dopts.copts.Cancel = make(chan struct{})
if EnableTracing { if EnableTracing {
ac.events = trace.NewEventLog("grpc.ClientConn", ac.addr.Addr) ac.events = trace.NewEventLog("grpc.ClientConn", ac.addr.Addr)
@ -400,7 +401,6 @@ func (cc *ClientConn) newAddrConn(addr Address, skipWait bool) error {
// ii) a buggy Balancer notifies duplicated Addresses. // ii) a buggy Balancer notifies duplicated Addresses.
stale.tearDown(errConnDrain) stale.tearDown(errConnDrain)
} }
ac.stateCV = sync.NewCond(&ac.mu)
// skipWait may overwrite the decision in ac.dopts.block. // skipWait may overwrite the decision in ac.dopts.block.
if ac.dopts.block && !skipWait { if ac.dopts.block && !skipWait {
if err := ac.resetTransport(false); err != nil { if err := ac.resetTransport(false); err != nil {