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
