Bill Pugh wrote:
> If, instead, we had:
> 
> initially, all variables are 0
> Thread 1
>   Volatile1 = 1
> 
> Thread 2
>   while (Volatile1 == 0);
>   print "success"
> 
> Then the program would be guaranteed to print "success", because once 
> thread 1 terminates, thread 2 must see the change to Volatile1 and then 
> terminate.
Why must Thread 1 get any time slices at all?
Why can't Thread 2 grab the first time slice and all remaining slices?
Your rule of 'some thread makes progress' makes sense to me.
Your example looks like you intended a rule of 'every thread makes some 
progress' which sounds like a quality of implementation issue, not a 
hard and fast guarantee.
Cliff
-------------------------------
JavaMemoryModel mailing list - http://www.cs.umd.edu/~pugh/java/memoryModel
This archive was generated by hypermail 2b29 : Thu Oct 13 2005 - 07:00:36 EDT