JavaMemoryModel: Volatiles in Sarita's model

From: Yue Yang (
Date: Tue Jul 29 2003 - 16:32:50 EDT


Could you please clarify how volatiles are treated in your model?

The definition of "Data race" talks about "data instruction instances",
but volatile operations are not defined as data instructions in the
definition of "Data, synchronization", this seems to suggest volatile
operations are exempt from the P|Di rules. But there's no other total
order requirement on volatiles.

If the volatiles also follow the rules in the "Memory model" section, is
the following case allowd?

a and b are volatiles:

t1 t2
w(a)0 w(b)0
w(a)1 w(b)1
r(b)0 r(a)0

This trace is not SC. Is this desired for volatile flags?

- Jason

JavaMemoryModel mailing list -

This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:48 EDT