summaryrefslogtreecommitdiff
path: root/src/common/thread_worker.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/thread_worker.h')
-rw-r--r--src/common/thread_worker.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/common/thread_worker.h b/src/common/thread_worker.h
index 7a6756eb5..7e2b04a07 100644
--- a/src/common/thread_worker.h
+++ b/src/common/thread_worker.h
@@ -11,18 +11,20 @@
11#include <vector> 11#include <vector>
12#include <queue> 12#include <queue>
13 13
14#include "common/unique_function.h"
15
14namespace Common { 16namespace Common {
15 17
16class ThreadWorker final { 18class ThreadWorker final {
17public: 19public:
18 explicit ThreadWorker(std::size_t num_workers, const std::string& name); 20 explicit ThreadWorker(std::size_t num_workers, const std::string& name);
19 ~ThreadWorker(); 21 ~ThreadWorker();
20 void QueueWork(std::function<void()>&& work); 22 void QueueWork(UniqueFunction<void> work);
21 void WaitForRequests(); 23 void WaitForRequests();
22 24
23private: 25private:
24 std::vector<std::thread> threads; 26 std::vector<std::thread> threads;
25 std::queue<std::function<void()>> requests; 27 std::queue<UniqueFunction<void>> requests;
26 std::mutex queue_mutex; 28 std::mutex queue_mutex;
27 std::condition_variable condition; 29 std::condition_variable condition;
28 std::condition_variable wait_condition; 30 std::condition_variable wait_condition;