8 #include "readerwriterqueue.h"
9 #include "blockingconcurrentqueue.h"
26 using Task = std::function<void()>;
50 moodycamel::BlockingReaderWriterQueue<Task> mQueue;
51 std::vector<Task> mDequeuedTasks;
99 std::unique_ptr<std::thread> mThread =
nullptr;
100 std::atomic<bool> mRunning;
101 bool mBlocking =
true;
112 ThreadPool(
int numberOfThreads = 1,
int maxQueueItems = 20,
bool realTimePriority =
false);
119 assert(task !=
nullptr);
120 mTaskQueue.enqueue(task);
131 void resize(
int numberOfThreads);
156 std::vector<std::thread> mThreads;
157 std::atomic<bool> mStop;
158 moodycamel::BlockingConcurrentQueue<TaskQueue::Task> mTaskQueue;
159 bool mRealTimePriority =
false;
TaskQueue(int maxQueueItems=20)
Definition: threading.h:58
bool enqueue(Task task)
Definition: threading.h:36
bool isRunning()
Definition: threading.h:91
void execute(TaskQueue::Task task)
Definition: threading.h:118
Definition: threading.h:22
ThreadPool(int numberOfThreads=1, int maxQueueItems=20, bool realTimePriority=false)
int getTaskCount() const
Definition: threading.h:146
std::function< void()> Task
Definition: threading.h:26
int getThreadCount() const
Definition: threading.h:136
virtual void loop()
Definition: threading.h:96
void resize(int numberOfThreads)
Definition: templateapp.h:17
void enqueue(TaskQueue::Task task)
Definition: threading.h:76
bool isStopping() const
Definition: threading.h:151
Definition: threading.h:109