< prev index next >
src/hotspot/share/runtime/objectMonitor.inline.hpp
Print this page
rev 59856 : 8247280: more fencing needed in async deflation for non-TSO machines
Reviewed-by: dholmes
@@ -189,24 +189,32 @@
p2i(prev), p2i(new_value));
}
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;
}
inline ObjectMonitor::AllocationState ObjectMonitor::allocation_state() const {
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 {
return _allocation_state == New;
}
< prev index next >