|
dispenso 1.6.0
A library for task parallelism
|
#include <functional>#include <vector>#include <dispenso/detail/future_impl.h>#include <dispenso/detail/result_of.h>#include <dispenso/schedulable.h>#include <dispenso/detail/future_impl2.h>Go to the source code of this file.
Classes | |
| class | dispenso::Future< Result > |
| class | dispenso::Future< Result & > |
| class | dispenso::Future< void > |
Functions | |
| template<class F , class... Args> | |
| Future< detail::ResultOf< F, Args... > > | dispenso::async (std::launch policy, F &&f, Args &&... args) |
| template<class F , class... Args> | |
| Future< detail::ResultOf< F, Args... > > | dispenso::async (F &&f, Args &&... args) |
| template<class F , class... Args> | |
| Future< detail::ResultOf< F, Args... > > | dispenso::async (ThreadPool &pool, std::launch policy, F &&f, Args &&... args) |
| template<class F , class... Args> | |
| Future< detail::ResultOf< F, Args... > > | dispenso::async (ThreadPool &pool, F &&f, Args &&... args) |
| template<class F , class... Args> | |
| Future< detail::ResultOf< F, Args... > > | dispenso::async (TaskSet &tasks, std::launch policy, F &&f, Args &&... args) |
| template<class F , class... Args> | |
| Future< detail::ResultOf< F, Args... > > | dispenso::async (TaskSet &tasks, F &&f, Args &&... args) |
| template<class F , class... Args> | |
| Future< detail::ResultOf< F, Args... > > | dispenso::async (ConcurrentTaskSet &tasks, std::launch policy, F &&f, Args &&... args) |
| template<class F , class... Args> | |
| Future< detail::ResultOf< F, Args... > > | dispenso::async (ConcurrentTaskSet &tasks, F &&f, Args &&... args) |
| template<class F , class... Args> | |
| Future< detail::ResultOf< F, Args... > > | dispenso::async (NewThreadInvoker sched, std::launch policy, F &&f, Args &&... args) |
| template<class F , class... Args> | |
| Future< detail::ResultOf< F, Args... > > | dispenso::async (NewThreadInvoker sched, F &&f, Args &&... args) |
| template<typename T > | |
| Future< std::decay_t< T > > | dispenso::make_ready_future (T &&t) |
| template<typename X > | |
| Future< X & > | dispenso::make_ready_future (std::reference_wrapper< X > x) |
| Future< void > | dispenso::make_ready_future () |
| template<class InputIt > | |
| Future< std::vector< typename std::iterator_traits< InputIt >::value_type > > | dispenso::when_all (InputIt first, InputIt last) |
| template<class... Futures> | |
| auto | dispenso::when_all (Futures &&... futures) -> Future< std::tuple< std::decay_t< Futures >... > > |
| template<class InputIt > | |
| Future< std::vector< typename std::iterator_traits< InputIt >::value_type > > | dispenso::when_all (TaskSet &taskSet, InputIt first, InputIt last) |
| template<class InputIt > | |
| Future< std::vector< typename std::iterator_traits< InputIt >::value_type > > | dispenso::when_all (ConcurrentTaskSet &taskSet, InputIt first, InputIt last) |
| template<class... Futures> | |
| auto | dispenso::when_all (TaskSet &taskSet, Futures &&... futures) -> Future< std::tuple< std::decay_t< Futures >... > > |
| template<class... Futures> | |
| auto | dispenso::when_all (ConcurrentTaskSet &taskSet, Futures &&... futures) -> Future< std::tuple< std::decay_t< Futures >... > > |
| template<class InputIt > | |
| Future< size_t > | dispenso::when_any (InputIt first, InputIt last) |
| template<class... Futures> | |
| auto | dispenso::when_any (Futures &&... futures) -> Future< size_t > |
| template<class InputIt > | |
| Future< size_t > | dispenso::when_any (TaskSet &taskSet, InputIt first, InputIt last) |
| template<class InputIt > | |
| Future< size_t > | dispenso::when_any (ConcurrentTaskSet &taskSet, InputIt first, InputIt last) |
| template<class... Futures> | |
| auto | dispenso::when_any (TaskSet &taskSet, Futures &&... futures) -> Future< size_t > |
| template<class... Futures> | |
| auto | dispenso::when_any (ConcurrentTaskSet &taskSet, Futures &&... futures) -> Future< size_t > |
Variables | |
| constexpr std::launch | dispenso::kNotAsync = static_cast<std::launch>(0) |
| constexpr std::launch | dispenso::kNotDeferred = static_cast<std::launch>(0) |
A file providing Futures, as well as functionality for creating futures, and for how to invoke Futures' closures.
See https://en.cppreference.com/w/cpp/experimental/future for details on the API.
Definition in file future.h.
|
inline |
|
inline |
Invoke a functor through the specified dispenso ConcurrentTaskSet.
| tasks | The ConcurrentTaskSet to run the Future. |
| policy | The bitmask policy for when/how the functor can be invoked. std::launch::async will result in the functor being forced onto a ThreadPool work queue. std::launch::deferred specifies that Future::wait_for and Future::wait_until may invoke the functor. |
| f | The functor to be passed, or a function to be executed |
| args | The remaining arguments that will be passed to f |
|
inline |
|
inline |
|
inline |
Invoke a functor on a new thread.
| sched | A NewThreadInvoker |
| policy | The bitmask policy for when/how the functor can be invoked. std::launch::async will result in the functor being forced onto a ThreadPool work queue. std::launch::deferred specifies that Future::wait_for and Future::wait_until may invoke the functor. |
| f | The functor to be passed, or a function to be executed |
| args | The remaining arguments that will be passed to f |
|
inline |
Invoke a functor through the global dispenso thread pool.
| policy | The bitmask policy for when/how the functor can be invoked. std::launch::async will result in the functor being forced onto a ThreadPool work queue. std::launch::deferred specifies that Future::wait_for and Future::wait_until may invoke the functor. |
| f | The functor to be passed, or a function to be executed |
| args | The remaining arguments that will be passed to f |
|
inline |
|
inline |
Invoke a functor through the specified dispenso TaskSet.
| tasks | The TaskSet to run the Future. |
| policy | The bitmask policy for when/how the functor can be invoked. std::launch::async will result in the functor being forced onto a ThreadPool work queue. std::launch::deferred specifies that Future::wait_for and Future::wait_until may invoke the functor. |
| f | The functor to be passed, or a function to be executed |
| args | The remaining arguments that will be passed to f |
|
inline |
|
inline |
Invoke a functor through the specified dispenso thread pool.
| pool | The ThreadPool to run the Future. |
| policy | The bitmask policy for when/how the functor can be invoked. std::launch::async will result in the functor being forced onto a ThreadPool work queue. std::launch::deferred specifies that Future::wait_for and Future::wait_until may invoke the functor. |
| f | The functor to be passed, or a function to be executed |
| args | The remaining arguments that will be passed to f |
|
inline |
|
inline |
|
inline |
| auto dispenso::when_all | ( | ConcurrentTaskSet & | taskSet, |
| Futures &&... | futures ) -> Future< std::tuple< std::decay_t< Futures >... > > |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| Future< std::vector< typename std::iterator_traits< InputIt >::value_type > > dispenso::when_all | ( | ConcurrentTaskSet & | taskSet, |
| InputIt | first, | ||
| InputIt | last ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| auto dispenso::when_all | ( | Futures &&... | futures | ) | -> Future< std::tuple< std::decay_t< Futures >... > > |
Take a specific set of futures, and return a future which will be ready when all input futures are ready.
| futures | A parameter pack of futures. |
| Future< std::vector< typename std::iterator_traits< InputIt >::value_type > > dispenso::when_all | ( | InputIt | first, |
| InputIt | last ) |
Take a collection of futures, and return a future which will be ready when all input futures are ready.
| first | An iterator to the start of the future collection. |
| last | An iterator to the end of the future collection. |
| auto dispenso::when_all | ( | TaskSet & | taskSet, |
| Futures &&... | futures ) -> Future< std::tuple< std::decay_t< Futures >... > > |
Take a specific set of futures, and return a future which will be ready when all input futures are ready.
| taskSet | A task set to register with such that after this call, taskSet::wait() implies that the resultant future is_ready() |
| futures | A parameter pack of futures. |
| Future< std::vector< typename std::iterator_traits< InputIt >::value_type > > dispenso::when_all | ( | TaskSet & | taskSet, |
| InputIt | first, | ||
| InputIt | last ) |
Take a collection of futures, and return a future which will be ready when all input futures are ready.
| taskSet | A task set to register with such that after this call, taskSet::wait() implies that the resultant future is_ready() |
| first | An iterator to the start of the future collection. |
| last | An iterator to the end of the future collection. |
| auto dispenso::when_any | ( | ConcurrentTaskSet & | taskSet, |
| Futures &&... | futures ) -> Future< size_t > |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| Future< size_t > dispenso::when_any | ( | ConcurrentTaskSet & | taskSet, |
| InputIt | first, | ||
| InputIt | last ) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| auto dispenso::when_any | ( | Futures &&... | futures | ) | -> Future< size_t > |
Take a specific set of futures, and return a future which will be ready when any one of them becomes ready. The result holds the index (in argument order) of the first to complete.
| futures | A parameter pack of futures. |
| Future< size_t > dispenso::when_any | ( | InputIt | first, |
| InputIt | last ) |
Take a collection of futures, and return a future which will be ready when any one of the input futures becomes ready. The result holds the index of the first input future to complete. Late completions of other inputs do not affect the result.
| first | An iterator to the start of the future collection. |
| last | An iterator to the end of the future collection. |
| auto dispenso::when_any | ( | TaskSet & | taskSet, |
| Futures &&... | futures ) -> Future< size_t > |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
| Future< size_t > dispenso::when_any | ( | TaskSet & | taskSet, |
| InputIt | first, | ||
| InputIt | last ) |
Variant that registers with a TaskSet so that taskSet.wait() implies the result is ready. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
constexpr |