// sender pops messages from a queue and sends them. func (b *broker) sender(sender electron.Sender) { q := b.queues.Get(sender.Source()) for { m, ok := <-q if !ok { // Queue closed return } if err := sender.SendForget(m); err == nil { util.Debugf("%s send: %s", sender, util.FormatMessage(m)) } else { util.Debugf("%s error: %s", sender, err) q <- m // Put it back on the queue. return } } }