func (ss *ServerList) filterAvailable() {
	// start with nothing available, and add available servers (with duplicates for balancing)
	ss.available = ss.available[:0]
	for _, addr := range ss.addrs {
		if ws, ok := ss.states[addr]; !ok || ws.retry == retryReady {
			ss.available = append(ss.available, addr)
		}
	}
}
// MUST be called from a method with a lock on the mutex
MUST be called from a method with a lock on the mutex
// MUST be called from a method with a lock on the mutex
func (ss *ServerList) filterAvailable() {
	ss.available = ss.available[:0]
	for _, addr := range ss.addrs {
		if ws, ok := ss.states[addr]; !ok || ws.retry == retryReady {
			ss.available = append(ss.available, addr)
		}
	}
}
func ( ss * ServerList ) filterAvailable ( ) { ss . available = ss . available [ : 0 ] for _ , addr := range ss . addrs { if ws , ok := ss . states [ addr ] ; ! ok || ws . retry == retryReady { ss . available = append ( ss . available , addr ) } } }
MUST be called from a method with a lock on the mutex
MUST be called from a method with a lock on the mutex
// start with nothing available, and add available servers (with duplicates for balancing)