浏览代码

optimize pubsub.Publish function

Signed-off-by: Shijiang Wei <mountkin@gmail.com>
Shijiang Wei 9 年之前
父节点
当前提交
1e0f1ec525
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      pkg/pubsub/publisher.go

+ 5 - 1
pkg/pubsub/publisher.go

@@ -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()