optimize pubsub.Publish function
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
This commit is contained in:
parent
092f2d6aed
commit
b8296053e2
1 changed files with 5 additions and 1 deletions
|
@ -64,10 +64,14 @@ func (p *Publisher) Evict(sub chan interface{}) {
|
|||
// Publish sends the data in v to all subscribers currently registered with the publisher.
|
||||
func (p *Publisher) Publish(v interface{}) {
|
||||
p.m.RLock()
|
||||
if len(p.subscribers) == 0 {
|
||||
p.m.RUnlock()
|
||||
return
|
||||
}
|
||||
|
||||
wg := new(sync.WaitGroup)
|
||||
for sub, topic := range p.subscribers {
|
||||
wg.Add(1)
|
||||
|
||||
go p.sendTopic(sub, topic, v, wg)
|
||||
}
|
||||
wg.Wait()
|
||||
|
|
Loading…
Reference in a new issue