[cpp-threads] modes, pass 2
Peter Dimov
pdimov at mmltd.net
Sun May 8 16:33:25 BST 2005
Doug Lea wrote:
>> I don't understand fallible_*,
>
> It means that CAS can return false just because it feels like it.
> Like LL/SC does on all platforms I know that use it.
If an implementation gives me fallible CAS when I ask for infallible CAS,
how can I tell? And even if I could tell, why would I want to?
>> and I don't understand *_ordered. Sorry. :-)
>
> Actually, I think you don't understand the sense of "release". Sorry.
> It's the main reason I apologized for crummy names.
> Here, release is intended to ensure that read-after-write
> works, which entails a heavy storeLoad barrier.
I still don't understand the precise meaning of "release" and "ordered".
What reorderings do these prevent? (Preceding | subsequent) (ordinary |
atomic on any variable | atomic on the same variable) (reads | writes)?
(The usual "release" prevents reordering of preceding *.)
More information about the cpp-threads
mailing list