diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2018-01-11 14:29:57 -0800 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2018-01-11 14:29:57 -0800 |
| commit | f87326fc21fb6db0944730ba1fe961d8bb249450 (patch) | |
| tree | 518cd8a9ef3f44dafae5065870571e6ff65429fe /node/Topology.cpp | |
| parent | 0574a70fac7ead502b983252583d5f05191b29cb (diff) | |
| download | infinitytier-f87326fc21fb6db0944730ba1fe961d8bb249450.tar.gz infinitytier-f87326fc21fb6db0944730ba1fe961d8bb249450.zip | |
Fixes for lock ordering -- GitHub issue #573
Diffstat (limited to 'node/Topology.cpp')
| -rw-r--r-- | node/Topology.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/node/Topology.cpp b/node/Topology.cpp index fa9868e9..17a0eee4 100644 --- a/node/Topology.cpp +++ b/node/Topology.cpp @@ -162,8 +162,8 @@ SharedPtr<Peer> Topology::getUpstreamPeer() unsigned int bestq = ~((unsigned int)0); const SharedPtr<Peer> *best = (const SharedPtr<Peer> *)0; - Mutex::Lock _l1(_peers_m); - Mutex::Lock _l2(_upstreams_m); + Mutex::Lock _l2(_peers_m); + Mutex::Lock _l1(_upstreams_m); for(std::vector<Address>::const_iterator a(_upstreamAddresses.begin());a!=_upstreamAddresses.end();++a) { const SharedPtr<Peer> *p = _peers.get(*a); @@ -252,8 +252,8 @@ bool Topology::addWorld(void *tPtr,const World &newWorld,bool alwaysAcceptNew) if ((newWorld.type() != World::TYPE_PLANET)&&(newWorld.type() != World::TYPE_MOON)) return false; - Mutex::Lock _l1(_upstreams_m); Mutex::Lock _l2(_peers_m); + Mutex::Lock _l1(_upstreams_m); World *existing = (World *)0; switch(newWorld.type()) { @@ -341,8 +341,8 @@ void Topology::addMoon(void *tPtr,const uint64_t id,const Address &seed) void Topology::removeMoon(void *tPtr,const uint64_t id) { - Mutex::Lock _l1(_upstreams_m); Mutex::Lock _l2(_peers_m); + Mutex::Lock _l1(_upstreams_m); std::vector<World> nm; for(std::vector<World>::const_iterator m(_moons.begin());m!=_moons.end();++m) { |
