libi2pd: add missing locks to i2p::tunnel::TunnelPool

This commit is contained in:
Simon Vetter 2021-10-30 23:14:48 +02:00
parent 1de1c79d4f
commit 58b7b7d731
2 changed files with 41 additions and 11 deletions

View file

@ -64,8 +64,8 @@ namespace tunnel
TunnelPool (int numInboundHops, int numOutboundHops, int numInboundTunnels, int numOutboundTunnels);
~TunnelPool ();
std::shared_ptr<i2p::garlic::GarlicDestination> GetLocalDestination () const { return m_LocalDestination; };
void SetLocalDestination (std::shared_ptr<i2p::garlic::GarlicDestination> destination) { m_LocalDestination = destination; };
std::shared_ptr<i2p::garlic::GarlicDestination> GetLocalDestination () const;
void SetLocalDestination (std::shared_ptr<i2p::garlic::GarlicDestination> destination);
void SetExplicitPeers (std::shared_ptr<std::vector<i2p::data::IdentHash> > explicitPeers);
void CreateTunnels ();
@ -126,8 +126,10 @@ namespace tunnel
private:
mutable std::mutex m_LocalDestinationMutex;
std::shared_ptr<i2p::garlic::GarlicDestination> m_LocalDestination;
int m_NumInboundHops, m_NumOutboundHops, m_NumInboundTunnels, m_NumOutboundTunnels;
mutable std::mutex m_ExplicitPeersMutex;
std::shared_ptr<std::vector<i2p::data::IdentHash> > m_ExplicitPeers;
mutable std::mutex m_InboundTunnelsMutex;
std::set<std::shared_ptr<InboundTunnel>, TunnelCreationTimeCmp> m_InboundTunnels; // recent tunnel appears first