[cpp-threads] modes, interlude
Doug Lea
dl at cs.oswego.edu
Mon May 9 14:59:13 BST 2005
For people not paying attention (which I wouldn't if I
were most of you :-). Here's the (probably biased) executive summary.
We're trying to define operations on atomics. It's harder than
it looks.
Some of us want this set to be small, mainly because we need to provide
full semantics for all of them and their interactions.
Some of us want this set to be large, mainly so programmers can have
more fine-grained control.
Among the complicating factors:
1. There are semantic differences across processors of instructions vs
barrier abstractions. Some of which are subtle.
2. There are cost differences in mapping different barrier abstractions
to different processors, that may or may not persist in the face of
common expected optimizations.
3. There are differences between memory-model-speak and sequence points.
(And maybe differences between barrier abstractions and the
underlying memory model semantics.)
4. We don't know where to place the thresholds of what properties
of known platforms should be ignored (requiring programmers
to resort to assembly to use them) vs those that should be abstracted
over to provide a common set of functionality, vs those that should
be feature-tested.
-Doug
More information about the cpp-threads
mailing list