aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/hub/storageserverinstance.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2026-03-17 23:34:29 +0100
committerGitHub Enterprise <[email protected]>2026-03-17 23:34:29 +0100
commitd8d0bbcd788d2d3d20029bf729a7b1d20cd44afb (patch)
tree08437c8fa5a253e000b9cd08e71b44801179f1f3 /src/zenserver/hub/storageserverinstance.cpp
parentFix crash handler: remove stack overflow case and fix misleading comment (diff)
parentadd missing metadata for PS5 used by test scripts (diff)
downloadzen-sb/local-crashreports.tar.xz
zen-sb/local-crashreports.zip
Merge branch 'main' into sb/local-crashreportssb/local-crashreports
Diffstat (limited to 'src/zenserver/hub/storageserverinstance.cpp')
-rw-r--r--src/zenserver/hub/storageserverinstance.cpp30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/zenserver/hub/storageserverinstance.cpp b/src/zenserver/hub/storageserverinstance.cpp
index f24379715..68de5e274 100644
--- a/src/zenserver/hub/storageserverinstance.cpp
+++ b/src/zenserver/hub/storageserverinstance.cpp
@@ -11,16 +11,13 @@
namespace zen {
-StorageServerInstance::StorageServerInstance(ZenServerEnvironment& RunEnvironment,
- std::string_view ModuleId,
- std::filesystem::path FileHydrationPath,
- std::filesystem::path HydrationTempPath)
-: m_ModuleId(ModuleId)
+StorageServerInstance::StorageServerInstance(ZenServerEnvironment& RunEnvironment, const Configuration& Config, std::string_view ModuleId)
+: m_Config(Config)
+, m_ModuleId(ModuleId)
, m_ServerInstance(RunEnvironment, ZenServerInstance::ServerMode::kStorageServer)
-, m_HydrationPath(FileHydrationPath)
{
m_BaseDir = RunEnvironment.CreateChildDir(ModuleId);
- m_TempDir = HydrationTempPath / ModuleId;
+ m_TempDir = Config.HydrationTempPath / ModuleId;
}
StorageServerInstance::~StorageServerInstance()
@@ -37,9 +34,20 @@ StorageServerInstance::SpawnServerProcess()
#if ZEN_PLATFORM_WINDOWS
m_ServerInstance.SetJobObject(m_JobObject);
#endif
- const uint16_t BasePort = m_ServerInstance.SpawnServerAndWaitUntilReady();
- ZEN_DEBUG("Storage server instance for module '{}' started, listening on port {}", m_ModuleId, BasePort);
+ ExtendableStringBuilder<256> AdditionalOptions;
+ AdditionalOptions << "--allow-port-probing=false";
+ if (m_Config.HttpThreadCount != 0)
+ {
+ AdditionalOptions << " --http-threads=" << m_Config.HttpThreadCount;
+ }
+ if (m_Config.CoreLimit != 0)
+ {
+ AdditionalOptions << " --corelimit=" << m_Config.CoreLimit;
+ }
+
+ m_ServerInstance.SpawnServerAndWaitUntilReady(m_Config.BasePort, AdditionalOptions.ToView());
+ ZEN_DEBUG("Storage server instance for module '{}' started, listening on port {}", m_ModuleId, m_Config.BasePort);
m_ServerInstance.EnableShutdownOnDestroy();
}
@@ -178,7 +186,7 @@ StorageServerInstance::Hydrate()
HydrationConfig Config{.ServerStateDir = m_BaseDir,
.TempDir = m_TempDir,
.ModuleId = m_ModuleId,
- .TargetSpecification = WideToUtf8(m_HydrationPath.native())};
+ .TargetSpecification = WideToUtf8(m_Config.FileHydrationPath.native())};
std::unique_ptr<HydrationStrategyBase> Hydrator = CreateFileHydrator();
@@ -192,7 +200,7 @@ StorageServerInstance::Dehydrate()
HydrationConfig Config{.ServerStateDir = m_BaseDir,
.TempDir = m_TempDir,
.ModuleId = m_ModuleId,
- .TargetSpecification = WideToUtf8(m_HydrationPath.native())};
+ .TargetSpecification = WideToUtf8(m_Config.FileHydrationPath.native())};
std::unique_ptr<HydrationStrategyBase> Hydrator = CreateFileHydrator();