Peter Dimov wrote:
Ben Hutchings wrote:
This seems somewhat reasonable. However, currently there are two significantly different reasons for thread objects to be non-joinable - either the thread is default-constructed and is just an ID holder or the thread has already been joined. These should be distinguishable. I'm convinced that there should be entirely separate types for thread IDs and thread starter/joiner objects and don't understand why they were given the same type.
For various historical reasons, most of them no longer relevant. :-)
If you remember, could you detail what these reasons were and why they're no longer relevant? I'm starting to think about what a Boost.Threads rewrite would look like in the event that I get more time (more about that in another post). Of course I want do deal with open issues as well.
FWIW, my position on the issue has always been that all (Boost) threads should be joinable.
Thanks, Mike