aboutsummaryrefslogtreecommitdiff
path: root/src/zenhttp/transports/winsocktransport.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2025-09-10 16:38:33 +0200
committerGitHub Enterprise <[email protected]>2025-09-10 16:38:33 +0200
commit339668ac935f781c06225d2d685642e27348772b (patch)
treea5552d166eef9b5c72a2f9a6903e584dfc8968d7 /src/zenhttp/transports/winsocktransport.cpp
parentfaster oplog entries with referenceset (#488) (diff)
downloadzen-339668ac935f781c06225d2d685642e27348772b.tar.xz
zen-339668ac935f781c06225d2d685642e27348772b.zip
add EMode to WorkerTheadPool to avoid thread starvation (#492)
- Improvement: Add a new mode to worker thread pools to avoid starvation of workers which could cause long stalls due to other work begin queued up. UE-305498
Diffstat (limited to 'src/zenhttp/transports/winsocktransport.cpp')
-rw-r--r--src/zenhttp/transports/winsocktransport.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/zenhttp/transports/winsocktransport.cpp b/src/zenhttp/transports/winsocktransport.cpp
index 8c82760bb..c06a50c95 100644
--- a/src/zenhttp/transports/winsocktransport.cpp
+++ b/src/zenhttp/transports/winsocktransport.cpp
@@ -304,18 +304,20 @@ SocketTransportPluginImpl::Initialize(TransportServer* ServerInterface)
TransportServerConnection* ConnectionInterface{m_ServerInterface->CreateConnectionHandler(Connection)};
Connection->Initialize(ConnectionInterface, ClientSocket);
- m_WorkerThreadpool->ScheduleWork([Connection] {
- try
- {
- Connection->HandleConnection();
- }
- catch (const std::exception& Ex)
- {
- ZEN_WARN("exception caught in connection loop: {}", Ex.what());
- }
-
- delete Connection;
- });
+ m_WorkerThreadpool->ScheduleWork(
+ [Connection] {
+ try
+ {
+ Connection->HandleConnection();
+ }
+ catch (const std::exception& Ex)
+ {
+ ZEN_WARN("exception caught in connection loop: {}", Ex.what());
+ }
+
+ delete Connection;
+ },
+ WorkerThreadPool::EMode::EnableBacklog);
}
else
{