From 2544ae7df940643d70866a2b2865a232759c2d97 Mon Sep 17 00:00:00 2001 From: vyzo Date: Tue, 6 Mar 2018 10:02:19 +0200 Subject: [PATCH] announce retry should check the pubsub context for cancellation --- pubsub.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pubsub.go b/pubsub.go index f739c3a..3ff2f7a 100644 --- a/pubsub.go +++ b/pubsub.go @@ -339,12 +339,18 @@ func (p *PubSub) announce(topic string, sub bool) { func (p *PubSub) announceRetry(topic string, sub bool) { time.Sleep(time.Duration(1+rand.Intn(1000)) * time.Millisecond) - p.eval <- func() { + + retry := func() { _, ok := p.myTopics[topic] if (ok && sub) || (!ok && !sub) { p.announce(topic, sub) } } + + select { + case p.eval <- retry: + case <-p.ctx.Done(): + } } // notifySubs sends a given message to all corresponding subscribers.