Why is this being addressed as a C++ issue instead of a Posix/thread library issue?
As is pointed out in H. Boehm, “Threads Cannot Be Implemented As a Library”, PLDI 2005 or the technical report version, the fundamental difficulty with the current C++/pthreads approach to threading is that a C++ compiler can introduce data races where there were none in the source. This is fundamentally a language specification and compiler issue, and cannot be addressed by changes in the threads library specification.