fixed race condition

This commit is contained in:
orignal 2014-10-10 16:48:42 -04:00
parent a7421739bc
commit 22773bd678

View File

@ -300,13 +300,15 @@ namespace tunnel
{ {
if (pool) if (pool)
{ {
{
std::unique_lock<std::mutex> l(m_PoolsMutex);
m_Pools.erase (pool->GetIdentHash ());
}
{ {
std::unique_lock<std::mutex> l(m_PendingTunnelsMutex); std::unique_lock<std::mutex> l(m_PendingTunnelsMutex);
for (auto it: m_PendingTunnels) for (auto it: m_PendingTunnels)
if (it.second->GetTunnelPool () == pool) it.second->SetTunnelPool (nullptr); if (it.second->GetTunnelPool () == pool) it.second->SetTunnelPool (nullptr);
} }
std::unique_lock<std::mutex> l(m_PoolsMutex);
m_Pools.erase (pool->GetIdentHash ());
delete pool; delete pool;
} }
} }