detach tunnles from poll

This commit is contained in:
orignal 2014-10-11 09:47:24 -04:00
parent f34680134a
commit 2ab597be20
3 changed files with 14 additions and 4 deletions

View File

@ -297,7 +297,11 @@ namespace tunnel
void Tunnels::DeleteTunnelPool (TunnelPool * pool)
{
if (pool) pool->SetDeleted ();
if (pool)
{
pool->DetachTunnels ();
pool->SetDeleted ();
}
}
void Tunnels::AddTransitTunnel (TransitTunnel * tunnel)

View File

@ -17,6 +17,11 @@ namespace tunnel
}
TunnelPool::~TunnelPool ()
{
DetachTunnels ();
}
void TunnelPool::DetachTunnels ()
{
{
std::unique_lock<std::mutex> l(m_InboundTunnelsMutex);
@ -28,8 +33,8 @@ namespace tunnel
for (auto it: m_OutboundTunnels)
it->SetTunnelPool (nullptr);
}
}
}
void TunnelPool::TunnelCreated (InboundTunnel * createdTunnel)
{
{

View File

@ -49,7 +49,8 @@ namespace tunnel
void ProcessDeliveryStatus (I2NPMessage * msg);
bool IsDeleted () const { return m_IsDeleted; };
void SetDeleted () { m_IsDeleted = true; }
void SetDeleted () { m_IsDeleted = true; };
void DetachTunnels ();
private: