diff --git a/router/gossip.go b/router/gossip.go index f66ea9d0..a3af241b 100644 --- a/router/gossip.go +++ b/router/gossip.go @@ -40,13 +40,15 @@ type GossipSender struct { } func NewGossipSender(send func(GossipData)) *GossipSender { - return &GossipSender{send: send} -} - -func (sender *GossipSender) Start() { - sender.cell = make(chan GossipData, 1) - sender.flushch = make(chan chan bool) + cell := make(chan GossipData, 1) + flushch := make(chan chan bool) + sender := &GossipSender{ + send: send, + cell: cell, + flushch: flushch, + } go sender.run() + return sender } func (sender *GossipSender) run() { diff --git a/router/gossip_channel.go b/router/gossip_channel.go index da7dc0ec..8dc1f510 100644 --- a/router/gossip_channel.go +++ b/router/gossip_channel.go @@ -147,7 +147,6 @@ func (c *GossipChannel) sendDown(conn Connection, data GossipData) { } }) c.senders[conn] = sender - sender.Start() } sender.Send(data) } @@ -198,7 +197,6 @@ func (c *GossipChannel) relayBroadcast(srcName PeerName, update GossipData) erro if !found { broadcaster = NewGossipSender(func(pending GossipData) { c.sendBroadcast(srcName, pending) }) c.broadcasters[srcName] = broadcaster - broadcaster.Start() } broadcaster.Send(update) return nil