--- old/src/hotspot/share/runtime/objectMonitor.inline.hpp 2020-07-14 21:33:19.000000000 -0400 +++ new/src/hotspot/share/runtime/objectMonitor.inline.hpp 2020-07-14 21:33:19.000000000 -0400 @@ -191,6 +191,10 @@ return prev; } +inline void ObjectMonitor::release_set_allocation_state(ObjectMonitor::AllocationState s) { + Atomic::release_store((int*)&_allocation_state, (int)s); +} + inline void ObjectMonitor::set_allocation_state(ObjectMonitor::AllocationState s) { _allocation_state = s; } @@ -199,12 +203,16 @@ return _allocation_state; } +inline ObjectMonitor::AllocationState ObjectMonitor::allocation_state_acquire() const { + return (AllocationState)Atomic::load_acquire((int*)&_allocation_state); +} + inline bool ObjectMonitor::is_free() const { return _allocation_state == Free; } inline bool ObjectMonitor::is_old() const { - return _allocation_state == Old; + return allocation_state_acquire() == Old; } inline bool ObjectMonitor::is_new() const {