[cpp-threads] modes

Doug Lea dl at cs.oswego.edu
Sat May 7 20:31:34 BST 2005


Peter Dimov wrote:
> Doug Lea wrote:
> 
>>>You seem to be saying that:
>>>
>>>- programs that have no data races are sequentially consistent;
>>
>>We define what is a race.
> 
> 
> I know. It doesn't matter. Programs involving unconstrained atomics aren't 
> sequentially consistent. (Even constrained ld.acq and st.rel atomics - x86 
> processor ordering, SPARC TSO, IA64 volatiles - aren't SC, see the example I 
> gave earlier.) If you define them to be race-free, your model no longer 
> offers SC for race-free code. Therefore, since SC for race-free code is 
> regarded as a desirable property of the MM, they must not be race-free. QED.
> 
> So I'm back to where I started. What specification describes the behavior of 
> these programs if our memory model pretends that they do not exist? 
> 
> 

Good point. Assuming we keep it, atomicX.ordinary_read must
be different than a read of an ordinary_var in that we give it
semantics. Which would make this all more similar to JMM (where
we provide semantics for all programs).

Hans will not be happy that I think that's what we will be forced
to do unless anyone sees a way out.

-Doug





More information about the cpp-threads mailing list