[cpp-threads] C++ committee meeting in Mont Tremblant
Peter A. Buhr
pabuhr at plg.uwaterloo.ca
Tue Oct 11 04:04:12 BST 2005
Lawrence Crowl presented a proposal for C-compatible syntax extensions to
support thread creation, locks, condition variables, and atomic
operations. My reading is that, in spite of the fact that syntax
extensions make some things a bit easier, the committee would prefer to go
with library extensions for all of these. Limited syntax extensions
seemed acceptable in cases where there is a demonstrable benefit, but they
generally seem to be considered suspect, primarily since they make it much
harder to construct prototypes.
Many participants seemed to, perhaps tentatively, favor a solution that
includes a C-level threads API (preferably by requiring pthreads, or
possibly a subset that is efficiently implementable on Windows, if that is
confirmed to be an issue), as well as a medium-level API based on Boost
threads. There seemed to be somewhat of a consensus that a higher level
API would be nice, but was unlikely to be designed, implemented, and
generate enough practical experience in time for the next C++ standard,
especially since it was unclear that there was an active effort along
those lines.
I've been reading patiently for 6 months waiting for this subcommittee to work
its way out of the memory-model gutter and up to something that approaches
interesting with respect modern concurrency. I believe I even tried twice to
start a high-level discussion and got no response. While I believe a good
memory model is important, it is only 2% of what regular programmers need to
develop good, reliable, concurrent application. So what about the other 98%?
I interpret these two paragraphs as saying that this subcommittee does not have
the backbone to take a strong position to the standards committee stating that
the only correct approach to modern concurrency is to proved integrated,
high-level mechanisms into the language. Only people who do not write
concurrent programs would suggest pthreads (C-level threads API) as a good
approach to concurrency. I've been there, done that, and it's crap. I've never
met a regular application programmer that likes pthreads. I've also developed
and used medium-level thread libraries and they are inadequate, too. Let's get
with the program, and figure out what regular programmers and compiler writers
need to aid in the development of large, complex, concurrent applications in a
reasonable period of time. I'm sorry but double-check locking is simply not on
the horizon at this level.
If the goal of this committee is to codify pthreads and the boost thread
library into C++, than this is a waste of time, and the results will be wholly
inadequate. Do you people really understand what the larger issues are with
respect to developing a full-blown concurrent language? So far, I have read
nothing to suggest that you do.
We are suppose to be the experts. If we take a strong stand on high-level
concurrency, the standards committee will listen. If we suggest the status quo,
the committee will hear that, too. So what's it going to be boy, yes or no?
Yours, getting near the end of his thread,
Peter Buhr
More information about the cpp-threads
mailing list