
Yuval Ronen wrote:
Peter Dimov wrote:
That was the exact purpose of the pthreads standard. Now people on POSIX-compliant OSes don't care about the underlying OS APIs (which in general have little to do with pthreads) because the vendor ships a pthread layer.
Maybe it was the purpose of the POSIX standard, but it was never accepted by the C or C++ standard committees.
If the committees only accepted things that were already accepted, they would never accept anything, right? ;-)
Of course we want Microsoft to offer this threading model to C programmers, but it's the job of the C standard committee to define the exact syntax. This standard C syntax might as well be the exact POSIX syntax, no problem by me. But it doesn't really matter one way or the other, as long as the C syntax accepted is a good one.
Doesn't this answer your original question, which was "why do we want Microsoft to ship a pthread layer"? They would have to, either way. The only question left is whether we want two incompatible C APIs to the same underlying model, only one of which works on Windows, or just one. It seems to me that it is in our best interest to want the latter.