JEP 193: Enhanced Volatiles

Christoph Engelbert me at
Wed Mar 5 07:51:08 UTC 2014

Am 05.03.2014 um 08:40 schrieb Jeroen Frijters <jeroen at>:

>>  My goal here is to make sure that expert users can get their job done
>> somehow, *without* making the job of mainstream developers harder.  The
>> "add lvalues to Java so experts can write CAS-libraries" fails that test
>> miserably.
> Why not go for something far less intrusive then? Here's my straw man proposal:
> Add an annotation that can be placed on native methods to synthesize atomic accessor methods.
> Example usage:
> @AtomicField("next")
> private native boolean compareAndSet(Node expected, Node newValue);
> @AtomicArray
> private static native boolean compareAndSet(Node[] array, Node expected, Node newValue);
> (Note that the method name is not significant, the operation can be derived from the signature, or explicit in the annotation, if necessary.)
> This requires no changes to the language and adds only a slight burden on the developer (but it's very easy to add tooling support). 
> Regards,
> Jeroen

That looks like a good fit towards what was mentioned earlier using method handles. The JVM or compiler could just look out for those annotations and generate corresponding method / field handles to execute it.


More information about the core-libs-dev mailing list