aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--zenserver/zenserver.cpp16
-rw-r--r--zenserver/zenserver.vcxproj7
2 files changed, 21 insertions, 2 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;
diff --git a/zenserver/zenserver.vcxproj b/zenserver/zenserver.vcxproj
index 449603334..ae0939cce 100644
--- a/zenserver/zenserver.vcxproj
+++ b/zenserver/zenserver.vcxproj
@@ -74,7 +74,7 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>..\zencore\include;..\zenstore\include;.</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\zencore\include;..\zenstore\include;..\zenutil\include;.</AdditionalIncludeDirectories>
<LanguageStandard>stdcpplatest</LanguageStandard>
</ClCompile>
<Link>
@@ -92,7 +92,7 @@
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>..\zencore\include;..\zenstore\include;.</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>..\zencore\include;..\zenstore\include;..\zenutil\include;.</AdditionalIncludeDirectories>
<LanguageStandard>stdcpplatest</LanguageStandard>
</ClCompile>
<Link>
@@ -147,6 +147,9 @@
<ProjectReference Include="..\zenstore\zenstore.vcxproj">
<Project>{26cbbaeb-14c1-4efc-877d-80f48215651c}</Project>
</ProjectReference>
+ <ProjectReference Include="..\zenutil\zenutil.vcxproj">
+ <Project>{77f8315d-b21d-4db0-9a6f-2d3359f88a70}</Project>
+ </ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">