fixed race condition

This commit is contained in:
orignal 2014-10-05 11:01:12 -04:00
parent 482fc0e8b1
commit f528eeae10
2 changed files with 4 additions and 0 deletions

View file

@ -290,6 +290,7 @@ namespace tunnel
TunnelPool * Tunnels::CreateTunnelPool (i2p::data::LocalDestination& localDestination, int numHops)
{
auto pool = new TunnelPool (localDestination, numHops);
std::unique_lock<std::mutex> l(m_PoolsMutex);
m_Pools[pool->GetIdentHash ()] = pool;
return pool;
}
@ -298,6 +299,7 @@ namespace tunnel
{
if (pool)
{
std::unique_lock<std::mutex> l(m_PoolsMutex);
m_Pools.erase (pool->GetIdentHash ());
delete pool;
}
@ -524,6 +526,7 @@ namespace tunnel
void Tunnels::ManageTunnelPools ()
{
std::unique_lock<std::mutex> l(m_PoolsMutex);
for (auto& it: m_Pools)
{
it.second->CreateTunnels ();