< prev index next >

src/hotspot/share/gc/z/zResurrection.cpp

Print this page

        

*** 21,31 **** * questions. */ #include "precompiled.hpp" #include "gc/z/zResurrection.hpp" ! #include "runtime/orderAccess.hpp" #include "runtime/safepoint.hpp" #include "utilities/debug.hpp" volatile bool ZResurrection::_blocked = false; --- 21,31 ---- * questions. */ #include "precompiled.hpp" #include "gc/z/zResurrection.hpp" ! #include "runtime/atomic.hpp" #include "runtime/safepoint.hpp" #include "utilities/debug.hpp" volatile bool ZResurrection::_blocked = false;
*** 33,42 **** assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); _blocked = true; } void ZResurrection::unblock() { ! // We use a storestore barrier to make sure all healed ! // oops are visible before we unblock resurrection. ! OrderAccess::storestore(); ! _blocked = false; } --- 33,42 ---- assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint"); _blocked = true; } void ZResurrection::unblock() { ! // No need for anything stronger than a relaxed store here. ! // The preceeding handshake makes sure that all non-strong ! // oops have already been healed at this point. ! Atomic::store(false, &_blocked); }
< prev index next >