17 #ifndef __CU_THREAD_POOL_H__
18 #define __CU_THREAD_POOL_H__
21 #include <condition_variable>
29 #pragma mark Thread Pool
79 #pragma mark Static Constructors
94 #pragma mark Task Management
104 void addTask(
const std::function<
void()> &task);
133 bool isShutdown()
const {
return _workers.size() == _complete; }
137 #pragma mark Initializers
138 CC_CONSTRUCTOR_ACCESS:
164 virtual bool init(
int threads = 4);
std::vector< std::thread > _workers
Definition: CUThreadPool.h:58
bool isStopped() const
Definition: CUThreadPool.h:124
bool isShutdown() const
Definition: CUThreadPool.h:133
int _complete
Definition: CUThreadPool.h:72
bool _detach
Definition: CUThreadPool.h:68
bool _stop
Definition: CUThreadPool.h:70
std::condition_variable _taskCondition
Definition: CUThreadPool.h:65
std::queue< std::function< void()> > _taskQueue
Definition: CUThreadPool.h:60
Definition: CUThreadPool.h:51
std::mutex _queueMutex
Definition: CUThreadPool.h:63