< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahEvacOOMHandler.cpp

Print this page

        

@@ -36,21 +36,21 @@
 ShenandoahEvacOOMHandler::ShenandoahEvacOOMHandler() :
   _threads_in_evac(0) {
 }
 
 void ShenandoahEvacOOMHandler::wait_for_no_evac_threads() {
-  while ((OrderAccess::load_acquire(&_threads_in_evac) & ~OOM_MARKER_MASK) != 0) {
+  while ((Atomic::load_acquire(&_threads_in_evac) & ~OOM_MARKER_MASK) != 0) {
     os::naked_short_sleep(1);
   }
   // At this point we are sure that no threads can evacuate anything. Raise
   // the thread-local oom_during_evac flag to indicate that any attempt
   // to evacuate should simply return the forwarding pointer instead (which is safe now).
   ShenandoahThreadLocalData::set_oom_during_evac(Thread::current(), true);
 }
 
 void ShenandoahEvacOOMHandler::enter_evacuation() {
-  jint threads_in_evac = OrderAccess::load_acquire(&_threads_in_evac);
+  jint threads_in_evac = Atomic::load_acquire(&_threads_in_evac);
 
   assert(!ShenandoahThreadLocalData::is_evac_allowed(Thread::current()), "sanity");
   assert(!ShenandoahThreadLocalData::is_oom_during_evac(Thread::current()), "TL oom-during-evac must not be set");
 
   if ((threads_in_evac & OOM_MARKER_MASK) != 0) {

@@ -77,11 +77,11 @@
   }
 }
 
 void ShenandoahEvacOOMHandler::leave_evacuation() {
   if (!ShenandoahThreadLocalData::is_oom_during_evac(Thread::current())) {
-    assert((OrderAccess::load_acquire(&_threads_in_evac) & ~OOM_MARKER_MASK) > 0, "sanity");
+    assert((Atomic::load_acquire(&_threads_in_evac) & ~OOM_MARKER_MASK) > 0, "sanity");
     // NOTE: It's ok to simply decrement, even with mask set, because unmasked value is positive.
     Atomic::dec(&_threads_in_evac);
   } else {
     // If we get here, the current thread has already gone through the
     // OOM-during-evac protocol and has thus either never entered or successfully left

@@ -94,11 +94,11 @@
 
 void ShenandoahEvacOOMHandler::handle_out_of_memory_during_evacuation() {
   assert(ShenandoahThreadLocalData::is_evac_allowed(Thread::current()), "sanity");
   assert(!ShenandoahThreadLocalData::is_oom_during_evac(Thread::current()), "TL oom-during-evac must not be set");
 
-  jint threads_in_evac = OrderAccess::load_acquire(&_threads_in_evac);
+  jint threads_in_evac = Atomic::load_acquire(&_threads_in_evac);
   while (true) {
     jint other = Atomic::cmpxchg((threads_in_evac - 1) | OOM_MARKER_MASK,
                                   &_threads_in_evac, threads_in_evac);
     if (other == threads_in_evac) {
       // Success: wait for other threads to get out of the protocol and return.

@@ -111,12 +111,12 @@
   }
 }
 
 void ShenandoahEvacOOMHandler::clear() {
   assert(ShenandoahSafepoint::is_at_shenandoah_safepoint(), "must be at a safepoint");
-  assert((OrderAccess::load_acquire(&_threads_in_evac) & ~OOM_MARKER_MASK) == 0, "sanity");
-  OrderAccess::release_store_fence<jint>(&_threads_in_evac, 0);
+  assert((Atomic::load_acquire(&_threads_in_evac) & ~OOM_MARKER_MASK) == 0, "sanity");
+  Atomic::release_store_fence<jint>(&_threads_in_evac, 0);
 }
 
 ShenandoahEvacOOMScope::ShenandoahEvacOOMScope() {
   ShenandoahHeap::heap()->enter_evacuation();
 }
< prev index next >