mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-02-02 02:44:15 +00:00
fixed race condition
This commit is contained in:
parent
f528eeae10
commit
b1316dee7c
18
Tunnel.cpp
18
Tunnel.cpp
@ -422,9 +422,12 @@ namespace tunnel
|
|||||||
if (ts > tunnel->GetCreationTime () + TUNNEL_EXPIRATION_TIMEOUT)
|
if (ts > tunnel->GetCreationTime () + TUNNEL_EXPIRATION_TIMEOUT)
|
||||||
{
|
{
|
||||||
LogPrint ("Tunnel ", tunnel->GetTunnelID (), " expired");
|
LogPrint ("Tunnel ", tunnel->GetTunnelID (), " expired");
|
||||||
auto pool = tunnel->GetTunnelPool ();
|
{
|
||||||
if (pool)
|
std::unique_lock<std::mutex> l(m_PoolsMutex);
|
||||||
pool->TunnelExpired (tunnel);
|
auto pool = tunnel->GetTunnelPool ();
|
||||||
|
if (pool)
|
||||||
|
pool->TunnelExpired (tunnel);
|
||||||
|
}
|
||||||
{
|
{
|
||||||
std::unique_lock<std::mutex> l(m_OutboundTunnelsMutex);
|
std::unique_lock<std::mutex> l(m_OutboundTunnelsMutex);
|
||||||
it = m_OutboundTunnels.erase (it);
|
it = m_OutboundTunnels.erase (it);
|
||||||
@ -465,9 +468,12 @@ namespace tunnel
|
|||||||
if (ts > tunnel->GetCreationTime () + TUNNEL_EXPIRATION_TIMEOUT)
|
if (ts > tunnel->GetCreationTime () + TUNNEL_EXPIRATION_TIMEOUT)
|
||||||
{
|
{
|
||||||
LogPrint ("Tunnel ", tunnel->GetTunnelID (), " expired");
|
LogPrint ("Tunnel ", tunnel->GetTunnelID (), " expired");
|
||||||
auto pool = tunnel->GetTunnelPool ();
|
{
|
||||||
if (pool)
|
std::unique_lock<std::mutex> l(m_PoolsMutex);
|
||||||
pool->TunnelExpired (tunnel);
|
auto pool = tunnel->GetTunnelPool ();
|
||||||
|
if (pool)
|
||||||
|
pool->TunnelExpired (tunnel);
|
||||||
|
}
|
||||||
{
|
{
|
||||||
std::unique_lock<std::mutex> l(m_InboundTunnelsMutex);
|
std::unique_lock<std::mutex> l(m_InboundTunnelsMutex);
|
||||||
it = m_InboundTunnels.erase (it);
|
it = m_InboundTunnels.erase (it);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user