Re: JavaMemoryModel: OK, time to get moving again

From: Jeremy Manson (jmanson@cs.umd.edu)
Date: Sun Feb 09 2003 - 21:21:08 EST


> Could someone kindlly tell me:
>
> What do the variables a and b have to do with anything? Where
> do b1 and b2 come from?

Slight typo there: that should be x == y == false, not a == b == false.
b1 and b2 are local boolean variables.

You will find us doing that a lot: we tend not to declare the local
variables.

I hope that helps. The basic idea is that x == true and y == false cannot
happen. Also, by the same principle, x == false and y == true cannot
happen, and the point is made elsewhere that x == y == true cannot happen.

x == false and y == true (or vice versa) cannot happen, formally speaking,
because that is not what we call a "consistent" execution. The reads are
not "allowed", by our definition of "allowed" (which is right near the
figure).

x == true and y == true cannot happen for a different reason: i.e., the
writes cause each other to happen. We disallow this sort of causality
loop.

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



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