Namespaces
Variants
Views
Actions

std::stop_callback<Callback>::stop_callback

From cppreference.com
 
 
Concurrency support library
Threads
(C++11)
(C++20)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Free functions for atomic operations
Free functions for atomic flags
Memory ordering
Mutual exclusion
(C++11)
Generic lock management
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Condition variables
(C++11)
Semaphores
Latches and barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
 
std::stop_callback
Member functions
stop_callback::stop_callback
Deduction guides
 
template<class C>
explicit stop_callback( const std::stop_token& st, C&& cb ) noexcept(/*see below*/);
(1) (since C++20)
template<class C>
explicit stop_callback( std::stop_token&& st, C&& cb ) noexcept(/*see below*/);
(2) (since C++20)
stop_callback( const stop_callback& ) = delete;
(3) (since C++20)
stop_callback( stop_callback&& ) = delete;
(4) (since C++20)

Constructs a new stop_callback object, saving and registering the cb callback function into the given std::stop_token's associated stop-state, for later invocation if stop is requested on the associated std::stop_source.

1) Constructs a stop_callback for the given st std::stop_token (copied), with the given invocable callback function cb.
2) Constructs a stop_callback for the given st std::stop_token (moved), with the given invocable callback function cb.
3-4) stop_callback is neither CopyConstructible nor MoveConstructible.

Both constructors participate overload resolution only if Callback and C satisfy constructible_from of std::constructible_from<Callback, C>. If Callback and C satisfy the concept but fail to satisfy its semantic requirement, the behavior is undefined.

[edit] Parameters

st - a std::stop_token object to register this stop_callback object with
cb - the type to invoke if stop is requested

[edit] Exceptions

1-2)
noexcept specification:  
noexcept(std::is_nothrow_constructible_v<Callback, C>)
Any exception thrown by constructor-initializing the given callback into the stop_callback object.

[edit] Notes

If st.stop_requested() == true for the passed-in std::stop_token, then the callback function is invoked in the current thread before the constructor returns.