From 1af67dd8fce02e0f3bb65bf1a0bee1922e118435 Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Fri, 14 Jun 2024 13:39:41 +0200 Subject: improve mutex startup error (#96) * separate collision of shared mutex from failure to create shared mutex --- src/zenserver/zenserver.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/zenserver/zenserver.cpp') diff --git a/src/zenserver/zenserver.cpp b/src/zenserver/zenserver.cpp index 9f24960bd..48ea89204 100644 --- a/src/zenserver/zenserver.cpp +++ b/src/zenserver/zenserver.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -148,9 +149,13 @@ ZenServer::Initialize(const ZenServerOptions& ServerOptions, ZenServerState::Zen std::string MutexName = fmt::format("zen_{}", ServerOptions.BasePort); - if (NamedMutex::Exists(MutexName) || ((m_ServerMutex.Create(MutexName) == false))) + if (NamedMutex::Exists(MutexName)) { - throw std::runtime_error(fmt::format("Failed to create mutex '{}' - is another instance already running?", MutexName).c_str()); + throw std::runtime_error(fmt::format("Mutex '{}' already exists - is another instance already running?", MutexName).c_str()); + } + if (m_ServerMutex.Create(MutexName) == false) + { + ThrowLastError(fmt::format("Failed to create mutex '{}'", MutexName).c_str()); } InitializeState(ServerOptions); -- cgit v1.2.3