aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/main.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2025-10-10 18:09:53 +0200
committerGitHub Enterprise <[email protected]>2025-10-10 18:09:53 +0200
commitc4801320150ea0c492cf343d490a0a339432f060 (patch)
treed3013ef82c1707e38db3abac94d1fec0ca352394 /src/zenserver/main.cpp
parentshorten thread pool names for Linux which has a limit of 15 characters (#563) (diff)
downloadzen-c4801320150ea0c492cf343d490a0a339432f060.tar.xz
zen-c4801320150ea0c492cf343d490a0a339432f060.zip
add ability to limit concurrency (#565)
effective concurrency in zenserver can be limited via the `--corelimit=<N>` option on the command line. Any value passed in here will be used instead of the return value from `std::thread::hardware_concurrency()` if it is lower. * added --corelimit option to zenserver * made sure thread pools are configured lazily and not during global init * added log output indicating effective and HW concurrency * added change log entry * removed debug logging from ZenEntryPoint::Run() also removed main thread naming on Linux since it makes the output from `top` and similar tools confusing (it shows `main` instead of `zenserver`)
Diffstat (limited to 'src/zenserver/main.cpp')
-rw-r--r--src/zenserver/main.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/zenserver/main.cpp b/src/zenserver/main.cpp
index a91c95ffb..b4d53ec5f 100644
--- a/src/zenserver/main.cpp
+++ b/src/zenserver/main.cpp
@@ -93,8 +93,13 @@ ZenEntryPoint::ZenEntryPoint(ZenServerOptions& ServerOptions) : m_ServerOptions(
int
ZenEntryPoint::Run()
{
- ZEN_INFO("ZenEntryPoint::Run()");
+ // On Linux this has the unfortunate side effect of making `top` and other tools display
+ // `main` as the program name since threads and processes have a closer relationship
+ // there. So we don't name the main thread explicitly there.
+
+#ifndef ZEN_PLATFORM_LINUX
zen::SetCurrentThreadName("main");
+#endif
#if ZEN_USE_SENTRY
SentryIntegration Sentry;
@@ -444,6 +449,8 @@ main(int argc, char* argv[])
#endif
}
+ LimitHardwareConcurrency(ServerOptions.CoreLimit);
+
std::string_view DeleteReason;
if (ServerOptions.IsCleanStart)