See example in attachement.
Bug is reproduced with -server on sparc after several iterations.
Originally was found by JR test.
Unsafe_SetLongVolatile() and Unsafe_GetLongVolatile() are not atomic
on 32 bit x86 (C++ generates two 32 bit loads/stores).
Use Atomic::load() and Atomic::store() to access a volatile long.