src/hotspot/share/runtime/safepoint.cpp
changeset 54495 941db9c0b5b5
parent 54323 846bc643f4ef
child 54621 0b6dc5b93306
equal deleted inserted replaced
54494:1bbce3048d20 54495:941db9c0b5b5
   803       // Load dependent store, it must not pass loading of safepoint_id.
   803       // Load dependent store, it must not pass loading of safepoint_id.
   804       thread->safepoint_state()->set_safepoint_id(safepoint_id); // Release store
   804       thread->safepoint_state()->set_safepoint_id(safepoint_id); // Release store
   805 
   805 
   806       // This part we can skip if we notice we miss or are in a future safepoint.
   806       // This part we can skip if we notice we miss or are in a future safepoint.
   807       OrderAccess::storestore();
   807       OrderAccess::storestore();
   808       thread->set_thread_state(_thread_blocked);
   808       // Load in wait barrier should not float up
   809 
   809       thread->set_thread_state_fence(_thread_blocked);
   810       OrderAccess::fence(); // Load in wait barrier should not float up
   810 
   811       _wait_barrier->wait(static_cast<int>(safepoint_id));
   811       _wait_barrier->wait(static_cast<int>(safepoint_id));
   812       assert(_state != _synchronized, "Can't be");
   812       assert(_state != _synchronized, "Can't be");
   813 
   813 
   814       // If barrier is disarmed stop store from floating above loads in barrier.
   814       // If barrier is disarmed stop store from floating above loads in barrier.
   815       OrderAccess::loadstore();
   815       OrderAccess::loadstore();