14 std::thread task_thread;
16 std::queue<std::function<void()>> task_queue;
18 bool thread_exited =
true;
25 bool queue_has_data = task_queue.size() > 0;
31 auto task = task_queue.front();
39 catch (std::exception &e)
55 if (task_thread.joinable())
59 void push(std::function<
void()> task)
63 task_queue.push(task);
67 if (task_thread.joinable())
69 thread_exited =
false;
70 task_thread = std::thread(&TaskQueue::threadFunc,
this);