Namespaces
Variants
Views
Actions

std::thread::~thread

From cppreference.com
< cpp‎ | thread‎ | thread
 
 
Concurrency support library
Threads
(C++11)
(C++20)
(C++20)
this_thread namespace
(C++11)
(C++11)
(C++11)
Mutual exclusion
(C++11)
(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)
Safe Reclamation
(C++26)
(C++26)
Hazard Pointers

Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
Memory ordering
Free functions for atomic operations
Free functions for atomic flags
 
 
~thread();
(since C++11)

Destroys the thread object.

If *this has an associated thread (joinable() == true), std::terminate() is called.

[edit] Notes

A thread object does not have an associated thread (and is safe to destroy) after

  • it was default-constructed.
  • it was moved from.
  • join() has been called.
  • detach() has been called.

[edit] Example

#include <thread>
using namespace std::chrono_literals;
 
int main()
{
    auto bleah = std::thread{[]{ std::this_thread::sleep_for(13ms); }};
 
}   // ~thread calls std::terminate()

Possible output:

terminate called without an active exception

[edit] See also

if the thread is joinable, then a stop is requested and the thread joins
(public member function of std::jthread) [edit]