Weldon,
 But I am not sure why the behavior would be different from J9 on the same
hardware. Do we jit volatiles differently?

Rana


On 2/20/07, Weldon Washburn <[EMAIL PROTECTED]> wrote:

It seems Dekker's algorithm is not expected to work on SPARC or IA32 SMP
boxes unless memory fences are used.  DekkerTest.java in Harmony-2986 does
not contain memory fences.  The volatile keyword guarantees the compiler
will write a given variable to memory.  However, the HW may actually have
a
write buffer and allow reads to pass writes.  As far as I know, the Java
language does not provide a means to invoke a memory fence.  Thus there is
no way to fix up DekkerTest.java.  I may be misunderstanding something
here.  Does anyone have comment?

An excellent description of the issues involved is in a David Dice
presentation at:

http://blogs.sun.com/dave/resource/synchronization-public2.pdf

--
Weldon Washburn
Intel Enterprise Solutions Software Division

Reply via email to