49 std::unique_ptr<Impl> impl;
57 Handle(std::shared_future<void> functionFinished);
69 const std::shared_future<void>&
getFuture()
const;
75 std::shared_ptr<std::mutex> mutex;
76 std::shared_future<void> functionFinished;
78 bool detached =
false;
82 ThreadPool(std::size_t pool_size,
bool queueTasks =
false);
89 Handle
runTask(std::function<
void()> task);
99 void wrap_task(std::function<
void()> task);
Handle(Handle &&)=default
Handle & operator=(Handle &&)=default
const std::shared_future< void > & getFuture() const
~Handle() noexcept(false)
Handle runTask(std::function< void()> task)
Adds a task to the thread pool if a thread is currently available.
ThreadPool(std::size_t pool_size, bool queueTasks=false)
Constructor.
int getAvailableTaskCount() const
If queing is disabled, returns the number of available threads.
This file offers overloads of toIce() and fromIce() functions for STL container types.