tmp/tmp7muyxsqq/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### `execution::get_completion_scheduler` <a id="exec.get.compl.sched">[[exec.get.compl.sched]]</a>
|
| 2 |
+
|
| 3 |
+
`get_completion_scheduler<completion-tag>` obtains the completion
|
| 4 |
+
scheduler associated with a completion tag from a sender’s attributes.
|
| 5 |
+
|
| 6 |
+
The name `get_completion_scheduler` denotes a query object template. For
|
| 7 |
+
a subexpression `q`, the expression
|
| 8 |
+
`get_completion_scheduler<completion-tag>(q)` is ill-formed if
|
| 9 |
+
*`completion-tag`* is not one of `set_value_t`, `set_error_t`, or
|
| 10 |
+
`set_stopped_t`. Otherwise,
|
| 11 |
+
`get_completion_scheduler<completion-tag>(q)` is expression-equivalent
|
| 12 |
+
to
|
| 13 |
+
|
| 14 |
+
``` cpp
|
| 15 |
+
MANDATE-NOTHROW(AS-CONST(q).query(get_completion_scheduler<completion-tag>))
|
| 16 |
+
```
|
| 17 |
+
|
| 18 |
+
*Mandates:* If the expression above is well-formed, its type satisfies
|
| 19 |
+
`scheduler`.
|
| 20 |
+
|
| 21 |
+
Let *`completion-fn`* be a completion function [[exec.async.ops]]; let
|
| 22 |
+
*`completion-tag`* be the associated completion tag of
|
| 23 |
+
*`completion-fn`*; let `args` be a pack of subexpressions; and let
|
| 24 |
+
`sndr` be a subexpression such that `sender<decltype((sndr))>` is `true`
|
| 25 |
+
and `get_completion_scheduler<completion-tag>(get_env(sndr))` is
|
| 26 |
+
well-formed and denotes a scheduler `sch`. If an asynchronous operation
|
| 27 |
+
created by connecting `sndr` with a receiver `rcvr` causes the
|
| 28 |
+
evaluation of `completion-fn(rcvr, args...)`, the behavior is undefined
|
| 29 |
+
unless the evaluation happens on an execution agent that belongs to
|
| 30 |
+
`sch`’s associated execution resource.
|
| 31 |
+
|
| 32 |
+
The expression
|
| 33 |
+
`forwarding_query(get_completion_scheduler<completion-tag>)` is a core
|
| 34 |
+
constant expression and has value `true`.
|
| 35 |
+
|