diff --git a/execution.html b/execution.html index 5d7247a..04d9c9e 100644 --- a/execution.html +++ b/execution.html @@ -2386,7 +2386,7 @@
std :: execution
- A
can be passed to an operation
+ A
+ n object of a type that models
+
can be passed to an operation
which
that
can either
@@ -6306,21 +6308,22 @@
stop_source
stoppable - source
+ an object whose type
+models stoppable - source
will be visible to all associated stop pable _token
and
stop_source
stoppable - source
- objects. Once a stop request has been
-made it cannot be withdrawn (a subsequent stop request has no effect).
+ objects. Once a stop request has been made
+it cannot be withdrawn (a subsequent stop request has no effect).
Callbacks registered via
a
an object
-that models
object
- are called when a stop
-request is first made by any associated
+whose type models
+ are called when a
+stop request is first made by any associated
object.
@@ -6342,10 +6345,11 @@
The types An object of type
and
and the class
-template
does no dynamic memory allocation of the
-stop state. They are for use when the lifetimes of
-the associated token and callback objects are known to nest within the
+
is the sole owner of its stop state.
+An object of type
or of a specialization of the class
+template
does not participate in ownership of its
+associated stop state. They are for use when all uses
+of the associated token and callback objects are known to nest within the
lifetime of the
object.
:: template
For a stop token type
and a type
such that
is true
, if the type
is valid, it denotes the type of a
-stop callback to use when registering a callback invocation to be executed
-if a stop request is made on the
’s associated stop source.
-The exposition-only
concept checks for a
-callback compatible with a given stop token type.
The exposition-only
concept checks for a
+callback compatible with a given
type.
template < class CallbackFn , class Token , class Initializer = CallbackFn > concept stoppable - callback - for = // exposition only invocable < CallbackFn > && @@ -6420,7 +6422,8 @@
Let
+same logical stop state; letand
t be distinct, valid objects of type
u that reference the -same logical stop state; let
Token be an object of type
init ; and let
Initializer denote the type
SCB .
stop_callback_for_t < Token , CallbackFn > be an expression such that
init is
same_as < decltype ( init ), Initializer > true
; and letdenote the +type
SCB .
stop_callback_for_t < Token , CallbackFn > The concept
is modeled only if:
stoppable - callback - for < CallbackFn , Token , Initializer > @@ -6473,12 +6476,12 @@
Destruction of
+deregistration as follows (in order):shall execute a stoppable callback -deregistration as follows:
scb
If the constructor of
+deregistration shall have no effect other than destroyingdid not register a callback invocation with
scb ’s stop state, then the stoppable callback -deregistration shall have no effect.
t if it was constructed.
cbfn Otherwise, the invocation of
@@ -6496,14 +6499,14 @@shall be removed from the associated stop state.
cbfn
- -
As a final step, the stoppable callback deregistration shall destroy
+.
cbfn The stoppable callback deregistration shall destroy
.
cbfn The
+checks for aconcept checks for the basic interface of a stop token that is copyable and allows polling to see if stop has been requested and also whether a stop request is possible. The
stoppable_token concept -checks for a stop token type that does not allow stopping.
unstoppable_token type that does not allow stopping.
stoppable_token +template < template < class > class > struct check - type - alias - exists ; // exposition-only @@ -6527,25 +6530,26 @@
requires bool_constant < ( ! tok . stop_possible ()) >:: value ; }; - +
An object whose type models
+has at most one associated +logical stop state. A
stoppable_token object with no associated stop +state is said to be disengaged.
stoppable_token - +
Let
be an evaluation of
SP that is
t . stop_possible () false
, and letbe an evaluation of
SR that is
t . stop_requested () true
.The type
models
Token only if:
stoppable_token
- -
An evaluation,
+, of
E is
t . stop_possible () false
, then -evaluations ofand
u . stop_possible () that happen -after
u . stop_requested () shall evaluate to
E false
.Any evaluation of
or
u . stop_possible () that happens after ([intro.races])
u . stop_requested () is
SP false
.- -
An evaluation,
+, of
E is
t . stop_requested () true
, then -evaluations ofand
u . stop_possible () that happen -after
u . stop_requested () shall evaluate to
E true
.Any evaluation of
or
u . stop_possible () that happens after
u . stop_requested () is
SR true
.- -
For any types
+and
CallbackFn , if
Initializer is satisfied, then
stoppable - callback - for < CallbackFn , Token , Initializer > shall be modeled.
stoppable - callback - for < CallbackFn , Token , Initializer > For any types
and
CallbackFn such that
Initializer is satisfied,
stoppable - callback - for < CallbackFn , Token , Initializer > is modeled.
stoppable - callback - for < CallbackFn , Token , Initializer > - -
An object that models
+has at most one associated -logical stop state. A
stoppable_token object with no associated stop -state is said to be disengaged. For a disengaged
stoppable_token object,
stoppable_token and
stop_possible shall -return
stop_requested false
. Ifand
t reference the same stop state, or if both
u and
t are disengaged,
u shall be
t == u true
; otherwise, it -shall befalse
.If
+is disengaged, evaluations of
t and
t . stop_possible () are
t . stop_requested () false
.- +
If
and
t reference the same stop state, or if both
u and
t are +disengaged,
u is
t == u true
; otherwise, it isfalse
.An object whose type models the exposition-only
concept can be queried whether stop has been requested (
stoppable - source )
stop_requested