Files
cppdraft_translate/cppdraft/exec/get/fwd/progress.md
2025-10-25 03:02:53 +03:00

2.2 KiB
Raw Blame History

[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 };}

1

#

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]).

2

#

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:

  • (2.1)

    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.

  • (2.2)

    Otherwise, forward_progress_guarantee::weakly_parallel.

3

#

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.