11#include "utils/WorkQueue.h"
21 std::vector<std::thread> threads_;
23 WorkQueue<std::function<void()>> tasks_;
28 threads_.reserve(numThreads);
29 for (std::size_t
i = 0;
i < numThreads; ++
i) {
30 threads_.emplace_back([
this] {
31 std::function<void()> task;
32 while (tasks_.pop(task)) {
42 for (
auto& thread : threads_) {
54 void add(std::function<
void()> task) {
55 tasks_.push(std::move(task));
ThreadPool(std::size_t numThreads)
Constructs a thread pool with numThreads threads.
Definition ThreadPool.h:27
void add(std::function< void()> task)
Definition ThreadPool.h:54
~ThreadPool()
Finishes all tasks currently in the queue.
Definition ThreadPool.h:40
Definition ErrorHolder.h:16
lzma_index ** i
Definition index.h:629