Am 05.03.2014 um 08:40 schrieb Jeroen Frijters <jer...@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