mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-28 15:05:53 +00:00
Fix assert invariant in Peers::close_all
This commit is contained in:
@@ -91,8 +91,6 @@ class PeersImp
|
||||
public:
|
||||
typedef std::unordered_map <PeerFinder::Slot::ptr,
|
||||
boost::weak_ptr <PeerImp>> PeersBySlot;
|
||||
typedef std::unordered_map <beast::IP::Endpoint,
|
||||
boost::weak_ptr <PeerImp>> PeersByIP;
|
||||
|
||||
typedef boost::unordered_map <
|
||||
RippleAddress, Peer::pointer> PeerByPublicKey;
|
||||
@@ -489,8 +487,12 @@ public:
|
||||
for (auto const& entry : m_peers)
|
||||
{
|
||||
PeerImp::ptr const peer (entry.second.lock());
|
||||
assert (peer != nullptr);
|
||||
peer->close (graceful);
|
||||
|
||||
// VFALCO The only case where the weak_ptr is expired should be if
|
||||
// ~PeerImp is pre-empted before it calls m_peers.remove()
|
||||
//
|
||||
if (peer != nullptr)
|
||||
peer->close (graceful);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user