clientv3/ready_wait.go
func readyWait(rpcCtx, clientCtx context.Context, ready <-chan struct{}) error {
	select {
	case <-ready:
		return nil
	case <-rpcCtx.Done():
		return rpcCtx.Err()
	case <-clientCtx.Done():
		return clientCtx.Err()
	}
}
func readyWait(rpcCtx, clientCtx context.Context, ready <-chan struct{}) error {
	select {
	case <-ready:
		return nil
	case <-rpcCtx.Done():
		return rpcCtx.Err()
	case <-clientCtx.Done():
		return clientCtx.Err()
	}
}
// TODO: remove this when "FailFast=false" is fixed.
// See https://github.com/grpc/grpc-go/issues/1532.