JEP 193: Enhanced Volatiles
Christoph Engelbert
me at noctarius.com
Wed Mar 5 07:51:08 UTC 2014
Am 05.03.2014 um 08:40 schrieb Jeroen Frijters <jeroen at sumatra.nl>:
>> 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.
Thanks,
Chris
More information about the core-libs-dev
mailing list