Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Note that this is rebased on top of #807 but it consists of one commit only (therefore I suggest going to the commit section and simplifying your review this way).
This PR implements a simple version of joining_thread. Appropriate thread library is detected and supplied by CMake.
Reasons why joining_thread derives privately from std::thread:
Last but not least, I didn't care much about exceptions thrown by joinable(), I assumed it would have to be an incredibly crazy scenario for this function to throw, but noexcept(false) could theoretically be added there. I say "theoretically", because the same function is called by the destructor of std::thread anyway which would terminate in this case.