Don't use time.After if there is no timeout

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
This commit is contained in:
Alexander Morozov 2015-07-14 09:14:51 -07:00
parent 7080f5d1cf
commit bc6ad1608c

View file

@ -58,9 +58,16 @@ func (p *Publisher) Publish(v interface{}) {
p.m.RLock()
for sub := range p.subscribers {
// send under a select as to not block if the receiver is unavailable
if p.timeout > 0 {
select {
case sub <- v:
case <-time.After(p.timeout):
}
continue
}
select {
case sub <- v:
case <-time.After(p.timeout):
default:
}
}
p.m.RUnlock()