30#include <condition_variable>
36 std::queue<std::function<void()>>
queue;
38 std::condition_variable
cv;
44 std::unique_lock<std::mutex> lock(
mtx);
55 std::unique_lock<std::mutex> lock(
mtx);
56 if (
queue.size() == 0)
62 std::function<void()> func = NULL;
78 queue = std::queue<std::function<void()>>();
81 void Push(std::function<
void()> task)
84 std::lock_guard<std::mutex> lock(
mtx);
92 std::lock_guard<std::mutex> lock(
mtx);
111 for (
int i = 0; i < numThreads; i++)
Definition thread_tasks.h:34
std::condition_variable complete
Definition thread_tasks.h:39
std::condition_variable cv
Definition thread_tasks.h:38
bool running
Definition thread_tasks.h:40
void Initialize()
Definition thread_tasks.h:75
std::queue< std::function< void()> > queue
Definition thread_tasks.h:36
void Join()
Definition thread_tasks.h:42
void Destroy()
Definition thread_tasks.h:89
std::thread thread
Definition thread_tasks.h:35
void TaskLoop()
Definition thread_tasks.h:51
std::mutex mtx
Definition thread_tasks.h:37
void Push(std::function< void()> task)
Definition thread_tasks.h:81
Definition thread_tasks.h:101
int numThreads
Definition thread_tasks.h:102
ThreadTask ** tasks
Definition thread_tasks.h:103