32 Concurrency support library [thread] (original) (raw)
32.3 Stop tokens [thread.stoptoken]
32.3.5 Class stop_source [stopsource]
32.3.5.1 General [stopsource.general]
namespace std { class stop_source { public: stop_source();explicit stop_source(nostopstate_t) noexcept {} void swap(stop_source&) noexcept;bool request_stop() noexcept;bool operator==(const stop_source& rhs) noexcept = default;private: shared_ptr<_unspecified_> stop-state; };}
stop-state refers to the stop_source's associated stop state.
A stop_source object is disengaged when stop-state is empty.
32.3.5.2 Constructors, copy, and assignment [stopsource.cons]
Effects: Initializes stop-state with a pointer to a new stop state.
Postconditions: stop_possible() is trueand stop_requested() is false.
Throws: bad_alloc if memory cannot be allocated for the stop state.
32.3.5.3 Member functions [stopsource.mem]
void swap(stop_source& rhs) noexcept;
Effects: Equivalent to:stop-state.swap(rhs.stop-state);
stop_token get_token() const noexcept;
Returns: stop_token() if stop_possible() is false; otherwise a new associated stop_token object; i.e., its stop-state member is equal to the stop-state member of *this.
bool stop_possible() const noexcept;
Returns: stop-state != nullptr.
bool stop_requested() const noexcept;
Returns: true if stop-state refers to a stop state that has received a stop request; otherwise, false.
bool request_stop() noexcept;
Effects: Executes a stop request operation ([stoptoken.concepts]) on the associated stop state, if any.