RFR: 8234562: Move OrderAccess::release_store*/load_acquire to Atomic

Stefan Karlsson stefan.karlsson at oracle.com
Thu Nov 21 10:33:28 UTC 2019

Hi all,

I'd like to propose that we move release_store, release_store_fence, and 
load_acquire, from OrderAccess to Atomic.


Atomic already has the relaxed store and load, among other functions for 
concurrent access, but release_store, release_store_fence, and 
load_acquire, are located in OrderAccess.

After this change there's an inconsistency in the order of the 
parameters in the store functions in the Atomic API:

  void store(T store_value, volatile D* dest)
  void release_store(volatile D* dest, T store_value)
  void release_store_fence(volatile D* dest, T store_value)

I'd like to address that in a separate RFE, where I propose that we move 
the dest parameter to the left for all the Atomic functions. See:

I've tested this patch with tier1-7. I've also built fastdebug on the 
following configs: aarch64, arm32, ppc64le, s390x, shenandoah, zero, 
minimal, just to minimize any disruptions.


More information about the hotspot-dev mailing list