std::thread::~thread (3) - Linux Manuals
~thread(); (since C++11)
Destroys the thread object.
If *this has an associated thread (joinable() == true), std::terminate() is called.
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