LLVM 17.0.0git
|
TaskQueue executes serialized work on a user-defined Thread Pool. More...
#include "llvm/Support/TaskQueue.h"
Public Member Functions | |
TaskQueue (ThreadPool &Scheduler) | |
Construct a task queue with no work. | |
~TaskQueue () | |
Blocking destructor: the queue will wait for all work to complete. | |
template<typename Callable > | |
std::future< std::invoke_result_t< Callable > > | async (Callable &&C) |
Asynchronous submission of a task to the queue. | |
TaskQueue executes serialized work on a user-defined Thread Pool.
It guarantees that if task B is enqueued after task A, task B begins after task A completes and there is no overlap between the two.
Definition at line 34 of file TaskQueue.h.
|
inline |
Construct a task queue with no work.
Definition at line 69 of file TaskQueue.h.
References Scheduler.
|
inline |
Blocking destructor: the queue will wait for all work to complete.
Definition at line 72 of file TaskQueue.h.
References assert(), and llvm::ThreadPool::wait().
|
inline |
Asynchronous submission of a task to the queue.
The returned future can be used to wait for the task (and all previous tasks that have not yet completed) to finish.
Definition at line 81 of file TaskQueue.h.
References llvm::ThreadPool::async(), llvm::CallingConv::C, and F.