aboutsummaryrefslogtreecommitdiff
path: root/zencore
diff options
context:
space:
mode:
authorJoe Kirchoff <[email protected]>2022-03-30 14:15:15 -0700
committerGitHub <[email protected]>2022-03-30 14:15:15 -0700
commiteb33c52b8e338b1bccf0d9d26b56d7ef611f6059 (patch)
tree994b2af87e7b0cfba3250d41227c94d777738dc4 /zencore
parentRetain flags for small objects in structured cache (#68) (diff)
downloadzen-eb33c52b8e338b1bccf0d9d26b56d7ef611f6059.tar.xz
zen-eb33c52b8e338b1bccf0d9d26b56d7ef611f6059.zip
Simple file-based compute (#65)
Diffstat (limited to 'zencore')
-rw-r--r--zencore/compactbinary.cpp4
-rw-r--r--zencore/include/zencore/compactbinary.h4
-rw-r--r--zencore/include/zencore/workthreadpool.h4
-rw-r--r--zencore/workthreadpool.cpp6
4 files changed, 13 insertions, 5 deletions
diff --git a/zencore/compactbinary.cpp b/zencore/compactbinary.cpp
index cb628af4b..31d449c41 100644
--- a/zencore/compactbinary.cpp
+++ b/zencore/compactbinary.cpp
@@ -1392,7 +1392,7 @@ LoadCompactBinaryObject(IoBuffer&& Payload)
}
CbObject
-LoadCompactBinaryObject(IoBuffer& Payload)
+LoadCompactBinaryObject(const IoBuffer& Payload)
{
return CbObject{SharedBuffer(Payload)};
}
@@ -1404,7 +1404,7 @@ LoadCompactBinaryObject(CompressedBuffer&& Payload)
}
CbObject
-LoadCompactBinaryObject(CompressedBuffer& Payload)
+LoadCompactBinaryObject(const CompressedBuffer& Payload)
{
return CbObject{SharedBuffer(Payload.DecompressToComposite().Flatten())};
}
diff --git a/zencore/include/zencore/compactbinary.h b/zencore/include/zencore/compactbinary.h
index 8985144dd..25fd4a7b2 100644
--- a/zencore/include/zencore/compactbinary.h
+++ b/zencore/include/zencore/compactbinary.h
@@ -1400,9 +1400,9 @@ CbField::AsBinary(const SharedBuffer& Default) &&
ZENCORE_API CbField LoadCompactBinary(BinaryReader& Ar, BufferAllocator Allocator);
ZENCORE_API CbObject LoadCompactBinaryObject(IoBuffer&& Payload);
-ZENCORE_API CbObject LoadCompactBinaryObject(IoBuffer& Payload);
-ZENCORE_API CbObject LoadCompactBinaryObject(CompressedBuffer& Payload);
+ZENCORE_API CbObject LoadCompactBinaryObject(const IoBuffer& Payload);
ZENCORE_API CbObject LoadCompactBinaryObject(CompressedBuffer&& Payload);
+ZENCORE_API CbObject LoadCompactBinaryObject(const CompressedBuffer& Payload);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/zencore/include/zencore/workthreadpool.h b/zencore/include/zencore/workthreadpool.h
index 834339d50..0ddc65298 100644
--- a/zencore/include/zencore/workthreadpool.h
+++ b/zencore/include/zencore/workthreadpool.h
@@ -36,9 +36,11 @@ public:
void ScheduleWork(Ref<IWork> Work);
void ScheduleWork(std::function<void()>&& Work);
- void WorkerThreadFunction();
+ [[nodiscard]] size_t PendingWork() const;
private:
+ void WorkerThreadFunction();
+
std::vector<std::thread> m_WorkerThreads;
BlockingQueue<Ref<IWork>> m_WorkQueue;
};
diff --git a/zencore/workthreadpool.cpp b/zencore/workthreadpool.cpp
index 3fd1d11a6..4291d1581 100644
--- a/zencore/workthreadpool.cpp
+++ b/zencore/workthreadpool.cpp
@@ -48,6 +48,12 @@ WorkerThreadPool::ScheduleWork(std::function<void()>&& Work)
m_WorkQueue.Enqueue(new detail::LambdaWork(Work));
}
+[[nodiscard]] size_t
+WorkerThreadPool::PendingWork() const
+{
+ return m_WorkQueue.Size();
+}
+
void
WorkerThreadPool::WorkerThreadFunction()
{