mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-03-07 06:09:42 +00:00
libi2pd: add missing locks to i2p::tunnel::Tunnels
m_InboundTunnelsMutex, m_OutboundTunnelsMutex and m_PoolsMutex have been changed to recursive_mutexes since they can be acquired multiple times by the same thread.
This commit is contained in:
@@ -254,12 +254,18 @@ namespace tunnel
|
||||
bool m_IsRunning;
|
||||
std::thread * m_Thread;
|
||||
std::map<uint32_t, std::shared_ptr<InboundTunnel> > m_PendingInboundTunnels; // by replyMsgID
|
||||
mutable std::mutex m_PendingInboundTunnelsMutex;
|
||||
std::map<uint32_t, std::shared_ptr<OutboundTunnel> > m_PendingOutboundTunnels; // by replyMsgID
|
||||
mutable std::mutex m_PendingOutboundTunnelsMutex;
|
||||
std::list<std::shared_ptr<InboundTunnel> > m_InboundTunnels;
|
||||
mutable std::recursive_mutex m_InboundTunnelsMutex;
|
||||
std::list<std::shared_ptr<OutboundTunnel> > m_OutboundTunnels;
|
||||
mutable std::recursive_mutex m_OutboundTunnelsMutex;
|
||||
std::list<std::shared_ptr<TransitTunnel> > m_TransitTunnels;
|
||||
mutable std::mutex m_TransitTunnelsMutex;
|
||||
std::unordered_map<uint32_t, std::shared_ptr<TunnelBase> > m_Tunnels; // tunnelID->tunnel known by this id
|
||||
std::mutex m_PoolsMutex;
|
||||
mutable std::recursive_mutex m_TunnelsMutex;
|
||||
mutable std::mutex m_PoolsMutex;
|
||||
std::list<std::shared_ptr<TunnelPool>> m_Pools;
|
||||
std::shared_ptr<TunnelPool> m_ExploratoryPool;
|
||||
i2p::util::Queue<std::shared_ptr<I2NPMessage> > m_Queue;
|
||||
|
||||
Reference in New Issue
Block a user