code: func (s *Store) broadcast(event *discoverd.Event) {
  	logBroadcast(event)
  
  	// Retrieve list of subscribers for the service.
  	l, ok := s.subscribers[event.Service]
  
  	if !ok {
  		return
  	}
  
  	// Iterate over each subscriber in the list.
  	for el := l.Front(); el != nil; el = el.Next() {
  		sub := el.Value.(*subscription)
  
  		// Skip if event type is not subscribed to.
  		if sub.kinds&event.Kind == 0 {
  			continue
  		}
  
  		// Send event to subscriber.
  		// If subscriber is blocked then close it.
  		select {
  		case sub.ch <- event:
  		default:
  			sub.err = ErrSendBlocked
  			go sub.Close()
  		}
  	}
  }
docs: // broadcast sends an event to all subscribers.
  // Requires the mu lock to be obtained.