32 Concurrency support library [thread] (original) (raw)

32.3 Stop tokens [thread.stoptoken]

32.3.4 Class stop_token [stoptoken]

32.3.4.1 General [stoptoken.general]

It shares ownership of its stop state, if any, with its associated stop_source object ([stopsource]) and any stop_token objects to which it compares equal.

namespace std { class stop_token { public: template<class CallbackFn> using callback_type = stop_callback<CallbackFn>; stop_token() noexcept = default;void swap(stop_token&) noexcept;bool stop_requested() const noexcept;bool stop_possible() const noexcept;bool operator==(const stop_token& rhs) noexcept = default;private: shared_ptr<_unspecified_> stop-state; };}

stop-state refers to the stop_token's associated stop state.

A stop_token object is disengaged when stop-state is empty.

32.3.4.2 Member functions [stoptoken.mem]

void swap(stop_token& rhs) noexcept;

Effects: Equivalent to:stop-state.swap(rhs.stop-state);

bool stop_requested() const noexcept;

Returns: true if stop-state refers to a stop state that has received a stop request; otherwise, false.

bool stop_possible() const noexcept;

Returns: false if

otherwise, true.