mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-28 11:47:48 +02: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:
parent
7073a6bf38
commit
1de1c79d4f
2 changed files with 35 additions and 6 deletions
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue