in grpcgcp/gcp_balancer.go [553:573]
func (gb *gcpBalancer) refresh(ref *subConnRef) {
if ref.refreshing {
return
}
gb.mu.Lock()
defer gb.mu.Unlock()
if ref.refreshing {
return
}
ref.refreshing = true
sc, err := gb.cc.NewSubConn(
gb.addrs,
balancer.NewSubConnOptions{HealthCheckEnabled: healthCheckEnabled},
)
if err != nil {
gb.log.Errorf("failed to create a replacement SubConn with NewSubConn: %v", err)
return
}
gb.refreshingScRefs[sc] = ref
sc.Connect()
}