diff --git a/src/jamidht/swarm/swarm_manager.cpp b/src/jamidht/swarm/swarm_manager.cpp index 01291a13373eb3c84e1c3a9f4a0044ebafcbc32b..1ebb21731d96c56a74ffdd12937032667777056f 100644 --- a/src/jamidht/swarm/swarm_manager.cpp +++ b/src/jamidht/swarm/swarm_manager.cpp @@ -90,11 +90,10 @@ SwarmManager::addChannel(const std::shared_ptr<dhtnet::ChannelSocketInterface>& void SwarmManager::removeNode(const NodeId& nodeId) { + std::unique_lock<std::mutex> lk(mutex); if (isConnectedWith(nodeId)) { - { - std::lock_guard<std::mutex> lock(mutex); - removeNodeInternal(nodeId); - } + removeNodeInternal(nodeId); + lk.unlock(); maintainBuckets(); } }