At 08:25 AM 1/02/2004, Bill Pugh wrote:
>Consider causality test case 10, for the execution E where r1 = r2 = 1 and
>r3 = 0. Partitioning would give you {{T1,T2,x,y}, {T3,T4,z}}. Note that
>although T4 could access x, it doesn't in E, so in the partitioning
>derived from E, T4 can be in a separate partition from x.
>
>But if we examine T1 and T2 in isolation, they are correctly synchronized,
>so r1 = r2 = 1 should not be possible.
I don't see this as really examining T1 and T2 in isolation, because to get
to a point where this is deemed sensible, you've already looked at the
final value in r3. From my perspective, it makes no sense to look only at
T1 and T2 because there are other threads that might be in the same
partition, and the only way to determine whether they are is to look at
their outputs. For any partitioning to be useful, it should be determined
statically.
Sylvia.
-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:57 EDT