summaryrefslogtreecommitdiff
path: root/src/common/thread_worker.h
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-04-01 01:05:45 -0300
committerGravatar ReinUsesLisp2021-07-08 19:03:26 -0300
commitbf5b5c1bf43946039d91f78253599c9996f86057 (patch)
tree2fcfd8f48297b03e3a9eb03cfe7594c7ead4edaa /src/common/thread_worker.h
parentcommon: Add unique function (diff)
downloadyuzu-bf5b5c1bf43946039d91f78253599c9996f86057.tar.gz
yuzu-bf5b5c1bf43946039d91f78253599c9996f86057.tar.xz
yuzu-bf5b5c1bf43946039d91f78253599c9996f86057.zip
common/thread_worker: Use unique function
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;