2.2 KiB
[exec.get.fwd.progress]
33 Execution control library [exec]
33.5 Queries [exec.queries]
33.5.8 execution::get_forward_progress_guarantee [exec.get.fwd.progress]
namespace std::execution {enum class forward_progress_guarantee { concurrent, parallel, weakly_parallel };}
get_forward_progress_guarantee asks a scheduler about the forward progress guarantee of execution agents created by that scheduler's associated execution resource ([intro.progress]).
The name get_forward_progress_guarantee denotes a query object.
For a subexpression sch, let Sch be decltype((sch)).
If Sch does not satisfy scheduler,get_forward_progress_guarantee is ill-formed.
Otherwise,get_forward_progress_guarantee(sch) is expression-equivalent to:
-
MANDATE-NOTHROW(AS-CONST(sch).query(get_forward_progress_guarantee)), if that expression is well-formed. Mandates: The type of the expression above is forward_progress_guarantee.
-
Otherwise, forward_progress_guarantee::weakly_parallel.
If get_forward_progress_guarantee(sch) for some scheduler sch returns forward_progress_guarantee::concurrent, all execution agents created by that scheduler's associated execution resource shall provide the concurrent forward progress guarantee.
If it returns forward_progress_guarantee::parallel, all such execution agents shall provide at least the parallel forward progress guarantee.