|
stlab 2.3.0
Modern, modular C++ algorithms, data structures, and concurrency primitives
|
Blocking wait helpers for futures (await, blocking_get, etc.).
Functions | |
| template<class F> | |
| auto | stlab::invoke_waiting (F &&f) |
| Assumes f will block waiting; on the portable task system, wakes the pool or adds a worker (up to the limit) before calling f. | |
| template<class T> | |
| auto | stlab::await (future< T > &&x) -> T |
| Synchronously wait for the result x. If x resolves as an exception, the exception is rethrown. When using the portable task system, an additional thread is added to the pool if no threads are available and the maximum number of threads has not been reached. | |
| template<class T> | |
| auto | stlab::await (const future< T > &x) -> T |
| Equivalent to await(copy(x)). | |
| template<class T> | |
| auto | stlab::await_for (future< T > &&x, const std::chrono::nanoseconds &timeout) -> future< T > |
| template<class T> | |
| auto | stlab::await_for (const future< T > &x, const std::chrono::nanoseconds &timeout) -> future< T > |
| Equivalent to await_for(copy(x), timeout). | |
| template<class T> | |
| auto | stlab::blocking_get (future< T > x) -> T |
| template<class T> | |
| auto | stlab::blocking_get_for (future< T > x, const std::chrono::nanoseconds &timeout) -> future< T > |
| template<class T> | |
| auto | stlab::blocking_get (future< T > x, const std::chrono::nanoseconds &timeout) -> decltype(x.get_try()) |
| auto stlab::blocking_get | ( | future< T > | x | ) | -> T |
Waits until x is ready. Consumes a thread while blocked, increasing contention and risking deadlock; subsequent work on the waiting thread is stalled. Prefer continuations (then, recover, when_all, etc.).
| auto stlab::blocking_get | ( | future< T > | x, |
| const std::chrono::nanoseconds & | timeout ) -> decltype(x.get_try()) |