The ThreadHint parameter can be used to request, but not guarantee, that a task executes on a particular thread.
The value passed should be the integer index in range [0..ThreadCount) of the thread in that executor.
You can retrieve the current thread index using tmc::current_thread_index().
tmc::post_waitable()#
Overloads for tmc::task:
-
template<typename E>
std::future<void> tmc::post_waitable(E &Executor, task<void> &&Task, size_t Priority = 0, size_t ThreadHint = NO_HINT)# Submits
TasktoExecutorfor execution at priorityPriority. The return value is astd::future<void>that can be used to poll or blocking wait for the task to complete.
-
template<typename E, typename Result>
std::future<Result> tmc::post_waitable(E &Executor, task<Result> &&Task, size_t Priority = 0, size_t ThreadHint = NO_HINT)# Submits
TasktoExecutorfor execution at priorityPriority. The return value is astd::future<Result>that can be used to poll or blocking wait for the result to be ready.
Overloads for functors:
-
template<typename E, typename FuncVoid>
std::future<void> tmc::post_waitable(E &Executor, FuncVoid &&Func, size_t Priority = 0, size_t ThreadHint = NO_HINT)# Given a functor that returns
void, this submitsFunctortoExecutorfor execution at priorityPriority. The return value is astd::future<void>that can be used to poll or blocking wait for the task to complete.
-
template<typename E, typename FuncResult, typename Result = std::invoke_result_t<FuncResult>>
std::future<Result> tmc::post_waitable(E &Executor, FuncResult &&Func, size_t Priority = 0, size_t ThreadHint = NO_HINT)# Given a functor that returns a value
Result, this submitsFunctortoExecutorfor execution at priorityPriority. The return value is astd::future<Result>that can be used to poll or blocking wait for the result to be ready.