GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::stop_token(3) C++ Standard Libary std::stop_token(3)

std::stop_token - std::stop_token


Defined in header <stop_token>
class stop_token; (since C++20)


The stop_token class provides the means to check if a stop request has been made or
can be made, for its associated std::stop_source object. It is essentially a
thread-safe "view" of the associated stop-state.


The stop_token can also be passed to the constructor of std::stop_callback, such
that the callback will be invoked if the stop_token's associated std::stop_source is
requested to stop. And stop_token can be passed to the interruptible waiting
functions of std::condition_variable_any, to interrupt the condition variable's wait
if stop is requested.


constructor constructs new stop_token object
(public member function)
destructor destructs the stop_token object
(public member function)
operator= assigns the stop_token object
(public member function)


swap swaps two stop_token objects
(public member function)


stop_requested checks whether the associated stop-state has been requested to stop
(public member function)
stop_possible checks whether associated stop-state can be requested to stop
(public member function)


operator== compares two std::stop_token objects
(function)
swap(std::stop_token) specializes the std::swap algorithm
(C++20) (function)


A stop_token object is not generally constructed independently, but rather retrieved
from a std::jthread or std::stop_source. This makes it share the same associated
stop-state as the std::jthread or std::stop_source.


Feature-test macro: __cpp_lib_jthread

// Run this code


#include <thread>
#include <iostream>


using namespace std::literals::chrono_literals;


void f(std::stop_token stop_token, int value)
{
while (!stop_token.stop_requested()) {
std::cout << value++ << ' ' << std::flush;
std::this_thread::sleep_for(200ms);
}
std::cout << std::endl;
}


int main()
{
std::jthread thread(f, 5); // prints 5 6 7 8... for approximately 3 seconds
std::this_thread::sleep_for(3s);
// The destructor of jthread calls request_stop() and join().
}


5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.