{"push_id":1411177733,"size":1,"distinct_size":1,"ref":"refs/heads/peerList-part10-movepeersubs","head":"b5880cf7f47d9a283ae907e9563d232ec93f576a","before":"51f101c2d6f5809cd132e4d78bc09c85378439b6","commits":[{"sha":"b5880cf7f47d9a283ae907e9563d232ec93f576a","author":{"name":"Will Hughes","email":"97fc9f5edc3cbc4818c6831223a10bb8e6397e22@gmail.com"},"message":"[PeerList][Part 10] Move PeerSubscriber management functions into Peer\n\nSummary: Due to a potential deadlock situation when a notification\naction occurs in the Agent Lock at the same time an Add/Remove occurs in\nthe PeerList we needed to move the location of PeerSubscription\nmanagement into the Peer level.  This means that Notifications for peers\nwill not be entirely threadsafe, but that should be ok.  Since the only\nactions that should affect the Peer's subscribers(lists) are Retain/Releases\n(which should be triggered by the lists) most inconsistency situations\ncan safely be ignored (event after a release) or won't happen fast\nenough to matter (If an action occurs on a peer while you are retaining\nit, it won't matter because you're going to check it's state at the end\nof the retaining anyway)\n\nIn the process of doing this I reworked the hostport.Peer tests, but,\nonly removed a couple of tests from the Agent tests, I'll look into\nfixing the agent tests later, but since there was no new functionality\nin the agent I didn't see a need for rewriting the tests yet.","distinct":true,"url":"https://api.github.com/repos/yarpc/yarpc-go/commits/b5880cf7f47d9a283ae907e9563d232ec93f576a"}]}
{"actor":{"display_login":"willhug"}}