Skip to content
This repository was archived by the owner on Jun 20, 2024. It is now read-only.

Conversation

@rade
Copy link
Member

@rade rade commented Jan 6, 2016

See commits for details.

rade added 2 commits January 6, 2016 17:38
With the per-broadcast-source GossipSenders gone, we can get rid of
GossipSender gc...

Instead of maintaining a Connection->GossipSender map in the
GossipChannels - which we then need to gc when connections get closed
- we keep gossip_channel_name->GossipSender maps in LocalConnections.

Access to the map is guarded by a separate lock, rather than re-using
the LocalConnection lock. This reduces lock contention and risk of
deadlock.

In the GossipSenders, we replace the Stop() method with a signalling
channel, i.e. senders stop when that channel gets closed. Handily, the
LocalConnection.finished channel fits that description. So when a
LocalConnection's run loop terminates, any existing and future
associated GossipSenders will end up terminating too.
@rade rade mentioned this pull request Jan 6, 2016
bboreham added a commit that referenced this pull request Jan 7, 2016
@bboreham bboreham merged commit 8804f88 into master Jan 7, 2016
@awh awh added this to the 1.5.0 milestone Jan 12, 2016
@rade rade deleted the no-gossip-sender-gc branch March 19, 2016 16:13
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants