func (p *PubSub) validateSingleTopic(val *topicVal, src peer.ID, msg *Message) bool {
	select {
	case val.validateThrottle <- struct{}{}:
		ctx, cancel := context.WithCancel(p.ctx)
		defer cancel()

		res := val.validateMsg(ctx, src, msg)
		<-val.validateThrottle

		return res

	default:
		log.Debugf("validation throttled for topic %s", val.topic)
		return false
	}
}
func (p *PubSub) validateSingleTopic(val *topicVal, src peer.ID, msg *Message) bool {
	select {
	case val.validateThrottle <- struct{}{}:
		ctx, cancel := context.WithCancel(p.ctx)
		defer cancel()

		res := val.validateMsg(ctx, src, msg)
		<-val.validateThrottle

		return res

	default:
		log.Debugf("validation throttled for topic %s", val.topic)
		return false
	}
}
func ( p * PubSub ) validateSingleTopic ( val * topicVal , src peer . ID , msg * Message ) bool { select { case val . validateThrottle <- struct { } { } : ctx , cancel := context . WithCancel ( p . ctx ) defer cancel ( ) res := val . validateMsg ( ctx , src , msg ) <- val . validateThrottle return res default : log . Debugf ( " " , val . topic ) return false } }
// fast path for single topic validation that avoids the extra goroutine
fast path for single topic validation that avoids the extra goroutine