Hi everyone,
I've recently been trying to build JikesRVM on a Free platform (using CACAO
and some hacked up tools from OpenJDK in the form of IcePick). I've got it
just about there now, but I've been let down by a missing native method.
Within the java.util.concurrent framework, the class AtomicLong has a native
method, VMSupportsCS8 which CACAO at least doesn't provide. It's basically
just a check method to find out whether the VM supports lockless compare-set
operations on longs.
From java.util.concurrent.atomic.AtomicLong:
/**
* Records whether the underlying JVM supports lockless
* CompareAndSet for longs. While the unsafe.CompareAndSetLong
* method works in either case, some constructions should be
* handled at Java level to avoid locking user-visible locks.
*/
static final boolean VM_SUPPORTS_LONG_CAS = VMSupportsCS8();
/**
* Returns whether underlying JVM supports lockless CompareAndSet
* for longs. Called only once and cached in VM_SUPPORTS_LONG_CAS.
*/
private static native boolean VMSupportsCS8();
Has anyone implemented this so far? So near, but yet so far!
Cheers,
--
Andy :)
http://www.dcs.shef.ac.uk/~andrew