diff --git a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp index 8b48591984b..e5c1905eacf 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.inline.hpp @@ -335,8 +335,8 @@ inline void ShenandoahHeapRegion::set_update_watermark(HeapWord* w) { inline void ShenandoahHeapRegion::concurrent_set_update_watermark(HeapWord* w) { assert(bottom() <= w && w <= top(), "within bounds"); HeapWord* watermark = nullptr; - while ((watermark = AtomicAccess::load(&_update_watermark)) < w) { - if (AtomicAccess::cmpxchg(&_update_watermark, watermark, w, memory_order_release) == watermark) { + while ((watermark = _update_watermark.load_acquire()) < w) { + if (_update_watermark.compare_exchange( watermark, w, memory_order_release) == watermark) { return; } }