Don't use time.After if there is no timeout
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
This commit is contained in:
parent
879a1a6842
commit
d5b7b9fa88
1 changed files with 8 additions and 1 deletions
|
@ -58,9 +58,16 @@ func (p *Publisher) Publish(v interface{}) {
|
||||||
p.m.RLock()
|
p.m.RLock()
|
||||||
for sub := range p.subscribers {
|
for sub := range p.subscribers {
|
||||||
// send under a select as to not block if the receiver is unavailable
|
// 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 {
|
select {
|
||||||
case sub <- v:
|
case sub <- v:
|
||||||
case <-time.After(p.timeout):
|
default:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
p.m.RUnlock()
|
p.m.RUnlock()
|
||||||
|
|
Loading…
Add table
Reference in a new issue