aboutsummaryrefslogtreecommitdiff
path: root/zenserver/zenserver.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-08-09 14:14:12 +0200
committerStefan Boberg <[email protected]>2021-08-09 14:14:12 +0200
commit5164591d05d1bb1cf00371758155e7f523d6ffe5 (patch)
treedae114b14de6cd6479f21f7607026cadf6c79879 /zenserver/zenserver.cpp
parentAdded ZenServerState implementation, used to track and enumerate live Zen ser... (diff)
downloadzen-5164591d05d1bb1cf00371758155e7f523d6ffe5.tar.xz
zen-5164591d05d1bb1cf00371758155e7f523d6ffe5.zip
Added self-registration of Zen server instance in shared state map
Diffstat (limited to 'zenserver/zenserver.cpp')
-rw-r--r--zenserver/zenserver.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/zenserver/zenserver.cpp b/zenserver/zenserver.cpp
index bf1528d98..573145d0d 100644
--- a/zenserver/zenserver.cpp
+++ b/zenserver/zenserver.cpp
@@ -9,6 +9,7 @@
#include <zencore/thread.h>
#include <zencore/timer.h>
#include <zencore/windows.h>
+#include <zenserverprocess.h>
#include <zenstore/cas.h>
#include <zenstore/cidstore.h>
@@ -280,6 +281,21 @@ main(int argc, char* argv[])
try
{
+ ZenServerState ServerState;
+ ServerState.Initialize();
+ ServerState.Sweep();
+
+ if (ZenServerState::ZenServerEntry* Entry = ServerState.Lookup(GlobalOptions.BasePort))
+ {
+ // Instance already running for this port? Should double check pid
+
+ spdlog::warn("Looks like there is already a process listening to this port (pid: {})", Entry->Pid);
+ }
+ else
+ {
+ ServerState.Register(GlobalOptions.BasePort);
+ }
+
std::unique_ptr<std::thread> ShutdownThread;
std::unique_ptr<zen::NamedEvent> ShutdownEvent;