[jmm-dev] jdk9 APIs

Aleksey Shipilev aleksey.shipilev at oracle.com
Wed Aug 12 16:20:44 UTC 2015

On 08/12/2015 01:43 PM, Doug Lea wrote:
> On 08/12/2015 04:35 AM, Andrew Haley wrote:
>> On 12/08/15 09:33, Aleksey Shipilev wrote:
>>> Or is it the other way around: weakCAS is relaxed by default, and
>>> acq/rel weakCAS version are actually *stronger* than default weakCAS?
>> That's how I read it.
>> weakCompareAndSet        is   ldxr; cmp; stxr
>> weakCompareAndSetAcquire is   ldaxr; cmp; stxr
>> weakCompareAndSetRelease is   ldxr; cmp; stlxr
> Yes. Exactly so. I'll make a pass on the specs to clarify.
> We defined weakCAS back in the original JDK5 atomics, but
> just linked the Java code to plain Unsafe CAS, with the
> expectation that someday someone would add intrinsics
> allowing a these kinds of implementations. More than a
> decade later, the intrinsics still don't exist. So it is
> nice to see you and Aleksey contemplating this (also for
> the acq/rel versions).

Yes, we are drilling more holes in Unsafe/VarHandles to support these

Andrew, I sent a separate note with a patch to review.


More information about the jmm-dev mailing list