Re: JavaMemoryModel: another question on volatile

From: Vijay Saraswat (vijay@saraswat.org)
Date: Thu Mar 18 2004 - 05:43:27 EST


Thomas Wang wrote:

>Initially, x = y = v = 0. v is a volatile variable.
>
>Thread 1:
>r1 = x
>v = 0
>y = 1
>
>Thread 2:
>r3 = y
>v = 0
>x = 1
>
>Is the behavior r1 == r3 == 1 possible?
>
Yes.

Because there are no reads to the variable, it doesnt matter whether the
variable is volatile (and therefore strong vs weak interpretations dont
matter). The program is equivalent to:
================================================

Initially, x = y = v = 0. v is a volatile variable.

Thread 1:
r1 = x
y = 1

Thread 2:
r3 = y
x = 1
======================================================

-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel



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