in grpcgcp/multiendpoint/multiendpoint.go [258:280]
func (me *multiEndpoint) setEndpointAvailability(e string, avail bool) {
ee, ok := me.endpoints[e]
if !ok {
return
}
if avail {
setState(ee, available)
return
}
if ee.status != available {
return
}
if me.recoveryTimeout == 0 {
setState(ee, unavailable)
return
}
setState(ee, recovering)
me.scheduleUnavailable(ee)
}