diff --git a/router/gossip.go b/router/gossip.go index 684bb21d..e119e661 100644 --- a/router/gossip.go +++ b/router/gossip.go @@ -63,7 +63,14 @@ func (sender *GossipSender) run() { } sender.send(pending) case ch := <-sender.flushch: - sender.flush() + // ensure anything pending is sent, then close the channel we were given + select { + case pending := <-sender.cell: + if pending != nil { + sender.send(pending) + } + default: + } close(ch) } } @@ -341,14 +348,3 @@ func (router *Router) sendPendingGossip() { <-ch } } - -func (sender *GossipSender) flush() { - for { - select { - case pending := <-sender.cell: - sender.send(pending) - default: - return - } - } -}