26 #include <condition_variable> 64 typedef std::function<void()>
task_t;
123 std::pair<bool, task_t> fetch_task_or_stop(
void);
128 bool should_stop(
void)
const;
134 std::list<std::thread> m_workers;
139 std::atomic<std::size_t> m_max_nb_threads = ATOMIC_VAR_INIT(0);
144 std::atomic<std::size_t> m_nb_running_threads = ATOMIC_VAR_INIT(0);
149 std::atomic<bool> m_should_stop = ATOMIC_VAR_INIT(
false);
154 std::queue<task_t> m_tasks;
159 std::mutex m_tasks_mtx;
164 std::condition_variable m_tasks_condvar;
thread_pool(std::size_t nb_threads)
thread_pool & operator=(const thread_pool &)=delete
assignment operator
std::function< void()> task_t
Definition: thread_pool.hpp:64
Definition: io_service.hpp:48
void add_task(const task_t &task)
thread_pool & operator<<(const task_t &task)
void set_nb_threads(std::size_t nb_threads)
Definition: thread_pool.hpp:41
bool is_running(void) const