From Jason Turner

[exec.get.fwd.progress]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpj1ph7wbz/{from.md → to.md} +34 -0
tmp/tmpj1ph7wbz/{from.md → to.md} RENAMED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ### `execution::get_forward_progress_guarantee` <a id="exec.get.fwd.progress">[[exec.get.fwd.progress]]</a>
2
+
3
+ ``` cpp
4
+ namespace std::execution {
5
+ enum class forward_progress_guarantee {
6
+ concurrent,
7
+ parallel,
8
+ weakly_parallel
9
+ };
10
+ }
11
+ ```
12
+
13
+ `get_forward_progress_guarantee` asks a scheduler about the forward
14
+ progress guarantee of execution agents created by that scheduler’s
15
+ associated execution resource [[intro.progress]].
16
+
17
+ The name `get_forward_progress_guarantee` denotes a query object. For a
18
+ subexpression `sch`, let `Sch` be `decltype((sch))`. If `Sch` does not
19
+ satisfy `scheduler`, `get_forward_progress_guarantee` is ill-formed.
20
+ Otherwise, `get_forward_progress_guarantee(sch)` is
21
+ expression-equivalent to:
22
+
23
+ - `MANDATE-NOTHROW(AS-CONST(sch).query(get_forward_progress_guarantee))`,
24
+ if that expression is well-formed. *Mandates:* The type of the
25
+ expression above is `forward_progress_guarantee`.
26
+ - Otherwise, `forward_progress_guarantee::weakly_parallel`.
27
+
28
+ If `get_forward_progress_guarantee(sch)` for some scheduler `sch`
29
+ returns `forward_progress_guarantee::concurrent`, all execution agents
30
+ created by that scheduler’s associated execution resource shall provide
31
+ the concurrent forward progress guarantee. If it returns
32
+ `forward_progress_guarantee::parallel`, all such execution agents shall
33
+ provide at least the parallel forward progress guarantee.
34
+