With C++20 we will have a new basic thread class, std::jthread.
It will fix a few flaws of std::thread, which was not designed as an easy to use RAII type and lacks the ability to support stopping a running thread.
Sounds like we only have to implement a better destructor and add a parameter to signal cancellation.
But especially with concurrency the devil is in the details.
This is not just a talk about jthread. It is a talk about how implementing even pretty simply concurrency requirements can become a tricky task with many many traps.