aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/zenserver.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-06-14 13:39:41 +0200
committerGitHub Enterprise <[email protected]>2024-06-14 13:39:41 +0200
commit1af67dd8fce02e0f3bb65bf1a0bee1922e118435 (patch)
tree7b80403ac6ba2e158cdd27579ff90ce5f48ca6cb /src/zenserver/zenserver.cpp
parent5.5.3 (diff)
downloadzen-1af67dd8fce02e0f3bb65bf1a0bee1922e118435.tar.xz
zen-1af67dd8fce02e0f3bb65bf1a0bee1922e118435.zip
improve mutex startup error (#96)
* separate collision of shared mutex from failure to create shared mutex
Diffstat (limited to 'src/zenserver/zenserver.cpp')
-rw-r--r--src/zenserver/zenserver.cpp9
1 files changed, 7 insertions, 2 deletions
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 <zencore/compactbinarybuilder.h>
#include <zencore/compactbinaryvalidation.h>
#include <zencore/config.h>
+#include <zencore/except.h>
#include <zencore/filesystem.h>
#include <zencore/fmtutils.h>
#include <zencore/iobuffer.h>
@@ -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);