diff --git a/source/exec.tex b/source/exec.tex index 766209159f..9fcc81d3cb 100644 --- a/source/exec.tex +++ b/source/exec.tex @@ -718,9 +718,9 @@ template<@\exposconcept{class-type}@ Promise> struct with_awaitable_senders; - // \ref{exec.affine.on}, coroutine utility \tcode{affine_on} - struct @\libglobal{affine_on_t}@ { @\unspec@ }; - inline constexpr affine_on_t @\libglobal{affine_on}@{}; + // \ref{exec.affine}, coroutine utility \tcode{affine} + struct @\libglobal{affine_t}@ { @\unspec@ }; + inline constexpr affine_t @\libglobal{affine}@{}; // \ref{exec.inline.scheduler}, inline scheduler class @\libglobal{inline_scheduler}@; @@ -1727,10 +1727,10 @@ Given an expression \tcode{sndr}, whose type is any sender type defined in the standard library, it is unspecified -whether the expression \tcode{sndr.affine_on()} is well-formed. +whether the expression \tcode{sndr.affine()} is well-formed. If that expression is well-formed, then the evaluation thereof meets the semantic requirements of -the \tcode{affine_on}\iref{exec.affine.on} algorithm. +the \tcode{affine}\iref{exec.affine} algorithm. \pnum Given an expression \tcode{sndr}, @@ -7301,24 +7301,24 @@ \end{codeblock} \end{itemdescr} -\rSec2[exec.affine.on]{\tcode{execution::affine_on}} +\rSec2[exec.affine]{\tcode{execution::affine}} \pnum -\tcode{affine_on} adapts a sender into one that completes on +\tcode{affine} adapts a sender into one that completes on the receiver's scheduler. If the algorithm determines that the adapted sender already completes on the correct scheduler it can avoid any scheduling operation. \pnum -The name \tcode{affine_on} denotes a pipeable sender adaptor +The name \tcode{affine} denotes a pipeable sender adaptor object. For a subexpression \tcode{sndr}, if \tcode{decltype((\brk{}sndr))} -does not satisfy \libconcept{sender}, \tcode{affine_on(sndr)} +does not satisfy \libconcept{sender}, \tcode{affine(sndr)} is ill-formed. \pnum -Otherwise, the expression \tcode{affine_on(sndr)} is -expression-equivalent to \tcode{\exposid{make-sender}(affine_on, env<>(), sndr)}. +Otherwise, the expression \tcode{affine(sndr)} is +expression-equivalent to \tcode{\exposid{make-sender}(affine, env<>(), sndr)}. \pnum For a subexpression \tcode{sch} whose type models \libconcept{scheduler}, @@ -7339,13 +7339,13 @@ \pnum Let \tcode{sndr} and \tcode{ev} be subexpressions such that \tcode{Sndr} is \tcode{decltype((sndr))}. -If \tcode{\exposconcept{sender-for}} is \tcode{false}, -then the expression \tcode{affine_on.transform_sender(sndr, ev)} is ill-formed; +If \tcode{\exposconcept{sender-for}} is \tcode{false}, +then the expression \tcode{affine.transform_sender(sndr, ev)} is ill-formed; otherwise, it is equal to: \begin{codeblock} auto& [_, _, child] = sndr; -if constexpr (requires { std::forward_like(child).affine_on(); }) { - return std::forward_like(child).affine_on(); +if constexpr (requires { std::forward_like(child).affine(); }) { + return std::forward_like(child).affine(); } else { return continues_on(std::forward_like(child), @\exposidnc{UNSTOPPABLE-SCHEDULER}@(get_start_scheduler(ev))); @@ -7354,7 +7354,7 @@ \pnum \recommended -Implementations should provide \tcode{affine_on} member functions +Implementations should provide \tcode{affine} member functions for senders that are known to resume on the scheduler where they were started. Example senders for which that is the case are \tcode{just}, @@ -7365,7 +7365,7 @@ \pnum Let \tcode{\placeholder{out_sndr}} be a subexpression denoting a sender -returned from \tcode{affine_on(sndr)} or one equal to such, +returned from \tcode{affine(sndr)} or one equal to such, and let \tcode{\placeholder{OutSndr}} be the type \tcode{decltype((\placeholder{out_sndr}))}. Let \tcode{\placeholder{out_rcvr}} be a subexpression denoting a receiver that has an environment of type \tcode{Env}. @@ -8154,7 +8154,7 @@ If \tcode{\libconcept{same_as}} is \tcode{true}, returns \tcode{as_awaitable(\brk{}std::forward(sndr), *this)}; -otherwise returns \tcode{as_awaitable(affine_on(std::for-\linebreak{}ward(sndr)), *this)}. +otherwise returns \tcode{as_awaitable(affine(std::forward<\brk{}Sender>(sndr)), *this)}. \end{itemdescr} \indexlibrarymember{unhandled_exception}{task::promise_type}%