common/thread_worker: Use unique function
This commit is contained in:
parent
2c8d337418
commit
bf5b5c1bf4
2 changed files with 25 additions and 29 deletions
|
@ -11,18 +11,20 @@
|
|||
#include <vector>
|
||||
#include <queue>
|
||||
|
||||
#include "common/unique_function.h"
|
||||
|
||||
namespace Common {
|
||||
|
||||
class ThreadWorker final {
|
||||
public:
|
||||
explicit ThreadWorker(std::size_t num_workers, const std::string& name);
|
||||
~ThreadWorker();
|
||||
void QueueWork(std::function<void()>&& work);
|
||||
void QueueWork(UniqueFunction<void> work);
|
||||
void WaitForRequests();
|
||||
|
||||
private:
|
||||
std::vector<std::thread> threads;
|
||||
std::queue<std::function<void()>> requests;
|
||||
std::queue<UniqueFunction<void>> requests;
|
||||
std::mutex queue_mutex;
|
||||
std::condition_variable condition;
|
||||
std::condition_variable wait_condition;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue