diff --git a/apps/Coordinator.cpp b/apps/Coordinator.cpp
index f0b1c2266ced78bd37b35815f1feed5f1fdffc43..90f685fbfaacc96f39caf720c32b612879813647 100644
--- a/apps/Coordinator.cpp
+++ b/apps/Coordinator.cpp
@@ -41,6 +41,7 @@ void notify() {
 	for (int conn : conns) emper::io::closeAndForget(conn);
 }
 
+// NOLINTNEXTLINE(bugprone-exception-escape)
 auto main(int argc, char* argv[]) -> int {
 	if (argc != 2) {
 		std::cerr << "Usage: " << argv[0] << " <count>" << std::endl;
@@ -55,7 +56,7 @@ auto main(int argc, char* argv[]) -> int {
 						<< " connections" << std::endl;
 
 	Runtime runtime;
-	auto* listener = emper::io::tcp_listener(HOST, PORT, [&](int socket) {
+	auto coordinator_func = [&](int socket) {
 		{
 			std::lock_guard<std::mutex> l(lock);
 			conns.push_back(socket);
@@ -70,7 +71,10 @@ auto main(int argc, char* argv[]) -> int {
 			notify();
 			runtime.initiateTermination();
 		}
-	});
+	};
+
+	auto* listener = emper::io::tcp_listener(HOST, PORT, coordinator_func, scount,
+																					 {emper::io::SockOpt::ReusePort});
 
 	if (!listener) {
 		exit(EXIT_FAILURE);