Date: Wed, 12 Oct 2022 11:42:11 -0300
Hi,
the current definition of std::stop_source::stop_possible() [1] states that:
*Returns*: true if *this has ownership of a stop state; otherwise, false.
>
and the current definition of std::stop_source::stop_requested() [2] states
that:
*Returns*: true if *this has ownership of a stop state that has received a
> stop request; otherwise, false.
>
from these requirements it appears that stop_requested() will never return
true if stop_possible() return false, but this is exactly what is required
as a post condition of std::stop_source::request_stop() [3], where it says:
*Postconditions*: stop_Âpossible() is false or stop_Ârequested() is true.
>
The issue here appears to be in the definition of
std::stop_source::stop_possible() that should be made equivalent to the
definition of std::stop_token::stop_possible() [4], something like:
*Returns*: true if *this has ownership of a stop state *and a stop request
> was not made*; otherwise, false.
>
Is this really an issue? If it is, will it be considered an editorial issue
or a defect?
Thanks.
[1] https://eel.is/c++draft/thread.stoptoken#stopsource.mem-2
[2] https://eel.is/c++draft/thread.stoptoken#stopsource.mem-3
[3] https://eel.is/c++draft/thread.stoptoken#stopsource.mem-5
[4] https://eel.is/c++draft/thread.stoptoken#stoptoken.mem-2
the current definition of std::stop_source::stop_possible() [1] states that:
*Returns*: true if *this has ownership of a stop state; otherwise, false.
>
and the current definition of std::stop_source::stop_requested() [2] states
that:
*Returns*: true if *this has ownership of a stop state that has received a
> stop request; otherwise, false.
>
from these requirements it appears that stop_requested() will never return
true if stop_possible() return false, but this is exactly what is required
as a post condition of std::stop_source::request_stop() [3], where it says:
*Postconditions*: stop_Âpossible() is false or stop_Ârequested() is true.
>
The issue here appears to be in the definition of
std::stop_source::stop_possible() that should be made equivalent to the
definition of std::stop_token::stop_possible() [4], something like:
*Returns*: true if *this has ownership of a stop state *and a stop request
> was not made*; otherwise, false.
>
Is this really an issue? If it is, will it be considered an editorial issue
or a defect?
Thanks.
[1] https://eel.is/c++draft/thread.stoptoken#stopsource.mem-2
[2] https://eel.is/c++draft/thread.stoptoken#stopsource.mem-3
[3] https://eel.is/c++draft/thread.stoptoken#stopsource.mem-5
[4] https://eel.is/c++draft/thread.stoptoken#stoptoken.mem-2
Received on 2022-10-12 14:42:23