[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