From d6d736586c647367551d991d1f67b32973b77c01 Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nicolas.pope@utu.fi>
Date: Tue, 10 May 2022 17:10:39 +0100
Subject: [PATCH] Remove waitConnections lock

---
 src/universe.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/universe.cpp b/src/universe.cpp
index d333395..6189d4e 100644
--- a/src/universe.cpp
+++ b/src/universe.cpp
@@ -278,7 +278,9 @@ void Universe::unbind(const std::string &name) {
 
 int Universe::waitConnections() {
 	SHARED_LOCK(net_mutex_, lk);
-	return std::count_if(peers_.begin(), peers_.end(), [](const auto &p) {
+	auto peers = peers_;
+	lk.unlock();
+	return std::count_if(peers.begin(), peers.end(), [](const auto &p) {
 		return p && p->waitConnection();
 	});
 }
@@ -636,7 +638,7 @@ void Universe::_notifyError(Peer *p, ftl::protocol::Error e, const std::string &
 	const auto ptr = (p) ? _findPeer(p) : nullptr;
 
 	// Note: Net errors can have no peer
-	if (!ptr) return;
+	//if (!ptr) return;
 
 	on_error_.triggerAsync(ptr, e, errstr);
 }
-- 
GitLab