aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/projectstore
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2023-11-29 09:14:57 -0500
committerGitHub <[email protected]>2023-11-29 15:14:57 +0100
commit68b3382ef7e0f7795b9a601aae73adc2f8ef9873 (patch)
treea8460fa497195575505e14f7beef069ecee31ef7 /src/zenserver/projectstore
parentfixed file logger pattern (#579) (diff)
downloadzen-68b3382ef7e0f7795b9a601aae73adc2f8ef9873.tar.xz
zen-68b3382ef7e0f7795b9a601aae73adc2f8ef9873.zip
global thread worker pools (#577)
- Improvement: Use two global worker thread pools instead of ad-hoc creation of worker pools
Diffstat (limited to 'src/zenserver/projectstore')
-rw-r--r--src/zenserver/projectstore/remoteprojectstore.cpp16
1 files changed, 4 insertions, 12 deletions
diff --git a/src/zenserver/projectstore/remoteprojectstore.cpp b/src/zenserver/projectstore/remoteprojectstore.cpp
index d5d229e42..826c8ff51 100644
--- a/src/zenserver/projectstore/remoteprojectstore.cpp
+++ b/src/zenserver/projectstore/remoteprojectstore.cpp
@@ -13,6 +13,7 @@
#include <zencore/timer.h>
#include <zencore/workthreadpool.h>
#include <zenstore/cidstore.h>
+#include <zenutil/workerpools.h>
#include <unordered_map>
@@ -802,10 +803,7 @@ BuildContainer(CidStore& ChunkStore,
const std::function<void(const std::unordered_set<IoHash, IoHash::Hasher>)>& OnBlockChunks,
tsl::robin_map<IoHash, IoBuffer, IoHash::Hasher>* OutOptionalTempAttachments)
{
- // We are creating a worker thread pool here since we are uploading a lot of attachments in one go and we dont want to keep a
- // WorkerThreadPool alive
- size_t WorkerCount = Min(std::thread::hardware_concurrency(), 16u);
- WorkerThreadPool WorkerPool(gsl::narrow<int>(WorkerCount));
+ WorkerThreadPool& WorkerPool = GetSmallWorkerPool();
AsyncRemoteResult RemoteResult;
CbObject ContainerObject = BuildContainer(ChunkStore,
@@ -1153,10 +1151,7 @@ SaveOplog(CidStore& ChunkStore,
Stopwatch Timer;
- // We are creating a worker thread pool here since we are uploading a lot of attachments in one go
- // Doing upload is a rare and transient occation so we don't want to keep a WorkerThreadPool alive.
- size_t WorkerCount = Min(std::thread::hardware_concurrency(), 16u);
- WorkerThreadPool WorkerPool(gsl::narrow<int>(WorkerCount), "oplog_upload"sv);
+ WorkerThreadPool& WorkerPool = GetSmallWorkerPool();
std::filesystem::path AttachmentTempPath;
if (UseTempBlocks)
@@ -1528,10 +1523,7 @@ LoadOplog(CidStore& ChunkStore,
Stopwatch Timer;
- // We are creating a worker thread pool here since we are download a lot of attachments in one go and we dont want to keep a
- // WorkerThreadPool alive
- size_t WorkerCount = Min(std::thread::hardware_concurrency(), 16u);
- WorkerThreadPool WorkerPool(gsl::narrow<int>(WorkerCount));
+ WorkerThreadPool& WorkerPool = GetSmallWorkerPool();
std::unordered_set<IoHash, IoHash::Hasher> Attachments;
std::vector<std::vector<IoHash>> ChunksInBlocks;