Re: JavaMemoryModel: Typo in Case 9 and Case 9a?

From: Bill Pugh (pugh@cs.umd.edu)
Date: Thu Feb 26 2004 - 11:04:10 EST


Yeah, sorry that was just a dumb typo. Fixed.

        Bill

On Feb 25, 2004, at 6:30 PM, Vijay Saraswat wrote:

> Case 9 is stated as:
>
> ==============================================
> <H2>Causality test case 9</H2><PRE>Initially, x = y = 0
>
> Thread 1:
> r1 = x
> r2 = 1 + r1*r1 - r1
> y = r1
>
> Thread 2:
> r3 = y
> x = r3
>
> Thread 3:
> x = 2
>
> Behavior in question: r1 = r2 = 1
>
> Decision: Allowed. Similar to test case 8, except that the x is not
> always
> 0 or 1. However, a compiler might determine that the read of x by
> thread
> 2 will never see the write by thread 3 (perhaps because thread 3
> will be scheduled after thread 1). Thus, the compiler
> can determine that r1 will always be 0 or 1.
> </PRE>
> <HR>
> ================================================
>
> I propose this test be changed so that Line 3 in Thread 1 is y=r2.
>
> Nothing else is changed.
>
> If this was not a typo, and this test is intended as it is, then I
> propose the decision be changed to forbidden. This is the same as Test
> 4, with some irrelevant stuff. Definitely not similar to Test 8!
>
> Similar remark applies to Test 9a.
>
> Best,
> Vijay
>
> -------------------------------
> JavaMemoryModel mailing list -
> http://www.cs.umd.edu/~pugh/java/memoryModel

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



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