From cppreference.com
boolstop_requested()constnoexcept;(since C++20)Checks if the
object has associated stop-state and that state has received a stop request. A default constructed stop_token has no associated stop-state, and thus has not had stop requested.
Parameters
(none)
Return value
true if the stop_token object has associated stop-state and it received a stop request, false otherwise.
Example
Run this code
#include<chrono>#include<condition_variable>#include<iostream>#include<mutex>#include<string_view>#include<thread>usingnamespacestd::chrono_literals;intmain(){std::cout<<std::boolalpha;autoprint=[](std::string_viewname,conststd::stop_token&token){std::cout<<name<<": stop_possible = "<<token.stop_possible();std::cout<<", stop_requested = "<<token.stop_requested()<<'\n';};// A worker thread that will listen to stop requestsautostop_worker=std::jthread([](std::stop_tokenstoken){for(inti=10;i;--i){std::this_thread::sleep_for(300ms);if(stoken.stop_requested()){std::cout<<" Sleepy worker is requested to stop\n";return;}std::cout<<" Sleepy worker goes back to sleep\n";}});// A worker thread that will only stop when completedautoinf_worker=std::jthread([](){for(inti=5;i;--i){std::this_thread::sleep_for(300ms);std::cout<<" Run as long as we want\n";}});std::stop_tokendef_token;std::stop_tokenstop_token=stop_worker.get_stop_token();std::stop_tokeninf_token=inf_worker.get_stop_token();print("def_token ",def_token);print("stop_token",stop_token);print("inf_token ",inf_token);std::cout<<"\nRequest and join stop_worker:\n";stop_worker.request_stop();stop_worker.join();std::cout<<"\nRequest and join inf_worker:\n";inf_worker.request_stop();inf_worker.join();std::cout<<'\n';print("def_token ",def_token);print("stop_token",stop_token);print("inf_token ",inf_token);}Possible output:
def_token : stop_possible = false, stop_requested = false stop_token: stop_possible = true, stop_requested = false inf_token : stop_possible = true, stop_requested = false Request and join stop_worker: Run as long as we want Sleepy worker is requested to stop Request and join inf_worker: Run as long as we want Run as long as we want Run as long as we want Run as long as we want def_token : stop_possible = false, stop_requested = false stop_token: stop_possible = true, stop_requested = true inf_token : stop_possible = true, stop_requested = true