74 std::shared_ptr<size_t> work_count_;
76 void (*execute_)(std::shared_ptr<Function> &p);
79 void do_work_started(
const std::shared_ptr<size_t> &task_count)
noexcept;
81 void do_work_finished(
const std::shared_ptr<size_t> &task_count);
83 void execute(std::unique_lock<std::mutex> &lock, std::shared_ptr<Function> &work);
85 bool execute_next(std::unique_lock<std::mutex> &lock);
89 void post(
const std::shared_ptr<Function> &task,
const std::shared_ptr<size_t> &task_count);
97 std::condition_variable condition_;
98 Usage usage_state_ = Usage::READY;
100 std::queue<std::shared_ptr<Function>> work_queue_;
101 boost::asio::thread_pool pool_;
The ThreadPoolContext class is a service class used for creating pool executors.
ThreadPoolContext(size_t num_threads=std::thread::hardware_concurrency())
Constructor.
friend class ThreadPoolExecutor
The ThreadPoolExecutor class is a definition of the interface to thread pool used for thread executio...