Advertisement
mfgnik

Untitled

Apr 5th, 2020
876
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.38 KB | None | 0 0
  1. func (p *MyPubSub) Subscribe(subj string, cb MsgHandler) (Subscription, error) {
  2.     p.mu.Lock()
  3.     defer p.mu.Unlock()
  4.     subscription := MySubscription{pubSub: p, subj: subj, cb: cb}
  5.     p.subs[subj] = append(p.subs[subj], &subscription)
  6.     if _, ok := p.conds[subj]; !ok {
  7.         p.conds[subj] = sync.NewCond(&p.mu)
  8.     }
  9.     go func() {
  10.         p.conds[subj].Wait()
  11.    
  12.     }()
  13.     return &subscription, nil
  14. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement