using id = thread::id
using native_handle_type = thread::native_handle_type
Public Member Functions
template<typename _Callable , typename... _Args, typename = enable_if_t<!is_same_v<remove_cvref_t<_Callable>, jthread>>> jthread (_Callable &&__f, _Args &&... __args)
jthread (const jthread &)=delete
jthread (jthread &&) noexcept=default
void detach ()
id get_id () const noexcept
stop_source get_stop_source () noexcept
stop_token get_stop_token () const noexcept
void join ()
bool joinable () const noexcept
native_handle_type native_handle ()
jthread & operator= (const jthread &)=delete
jthread & operator= (jthread &&__other) noexcept
bool request_stop () noexcept
void swap (jthread &__other) noexcept
Static Public Member Functions
static unsigned hardware_concurrency () noexcept
void swap (jthread &__lhs, jthread &__rhs) noexcept
A thread with cancellation and automatic joining.
std::thread, destroying a joinable
std::jthread will not terminate the process. Instead, it will try to request its thread to stop, then will join it.
std::jthread has a
std::stop_source member which will be passed as the first argument to the callable that runs in the new thread (as long as the callable will accept that argument). That can then be used to send a stop request that the new thread can test for.
Generated automatically by Doxygen for libstdc++ from the source code.