diff options
Diffstat (limited to 'src/zenserver/main.cpp')
| -rw-r--r-- | src/zenserver/main.cpp | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/zenserver/main.cpp b/src/zenserver/main.cpp index 2d2b24bbb..8715f5447 100644 --- a/src/zenserver/main.cpp +++ b/src/zenserver/main.cpp @@ -153,23 +153,23 @@ ZenEntryPoint::Run() std::filesystem::path LockFilePath = m_ServerOptions.DataDir / ".lock"; - bool IsReady = false; - - auto MakeLockData = [&] { - CbObjectWriter Cbo; - Cbo << "pid" << GetCurrentProcessId() << "data" << PathToUtf8(m_ServerOptions.DataDir) << "port" << m_ServerOptions.BasePort - << "session_id" << GetSessionId() << "ready" << IsReady; - return Cbo.Save(); + auto MakeLockData = [&](bool IsReady) { + return MakeLockFilePayload({.Pid = GetCurrentProcessId(), + .SessionId = GetSessionId(), + .EffectiveListenPort = gsl::narrow<uint16_t>(m_ServerOptions.BasePort), + .Ready = IsReady, + .DataDir = m_ServerOptions.DataDir, + .ExecutablePath = GetRunningExecutablePath()}); }; - m_LockFile.Create(LockFilePath, MakeLockData(), Ec); + m_LockFile.Create(LockFilePath, MakeLockData(false), Ec); if (Ec) { ZEN_WARN("Unable to grab lock at '{}' (error: '{}'), retrying", LockFilePath, Ec.message()); Sleep(500); - m_LockFile.Create(LockFilePath, MakeLockData(), Ec); + m_LockFile.Create(LockFilePath, MakeLockData(false), Ec); if (Ec) { ZEN_WARN("ERROR: Unable to grab lock at '{}' (error: '{}')", LockFilePath, Ec.message()); @@ -255,9 +255,7 @@ ZenEntryPoint::Run() // to be able to communicate readiness with the parent Server.SetIsReadyFunc([&] { - IsReady = true; - - m_LockFile.Update(MakeLockData(), Ec); + m_LockFile.Update(MakeLockData(true), Ec); if (!m_ServerOptions.ChildId.empty()) { |