8000 get rid of GossipSender gc by rade · Pull Request #1856 · weaveworks/weave · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
This repository was archived by the owner on Jun 20, 2024. It is now read-only.

get rid of GossipSender gc #1856

Merged
merged 2 commits into from
Jan 7, 2016
Merged

get rid of GossipSender gc #1856

merged 2 commits into from
Jan 7, 2016

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.

3 participants
0