From 98361dc8f98d97e1e9134bcc7facbfc177970cfa Mon Sep 17 00:00:00 2001 From: orignal Date: Sun, 21 Sep 2014 22:00:42 -0400 Subject: [PATCH] fixed race condition --- NetDb.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NetDb.cpp b/NetDb.cpp index 2202b718..55eda425 100644 --- a/NetDb.cpp +++ b/NetDb.cpp @@ -747,11 +747,11 @@ namespace data RequestedDestination * NetDb::CreateRequestedDestination (const IdentHash& dest, bool isLeaseSet, bool isExploratory, i2p::tunnel::TunnelPool * pool) { + std::unique_lock l(m_RequestedDestinationsMutex); auto it = m_RequestedDestinations.find (dest); if (it == m_RequestedDestinations.end ()) // not exist yet { RequestedDestination * d = new RequestedDestination (dest, isLeaseSet, isExploratory, pool); - std::unique_lock l(m_RequestedDestinationsMutex); m_RequestedDestinations[dest] = d; return d; } @@ -764,8 +764,8 @@ namespace data auto it = m_RequestedDestinations.find (dest); if (it != m_RequestedDestinations.end ()) { - delete it->second; std::unique_lock l(m_RequestedDestinationsMutex); + delete it->second; m_RequestedDestinations.erase (it); return true; }