code: func (s *Serf) broadcast(t messageType, msg interface{}, notify chan<- struct{}) error {
  	raw, err := encodeMessage(t, msg)
  	if err != nil {
  		return err
  	}
  
  	s.broadcasts.QueueBroadcast(&broadcast{
  		msg:    raw,
  		notify: notify,
  	})
  	return nil
  }
docs: // broadcast takes a Serf message type, encodes it for the wire, and queues
  // the broadcast. If a notify channel is given, this channel will be closed
  // when the broadcast is sent.