< prev index next >

src/hotspot/share/runtime/objectMonitor.inline.hpp

Print this page
rev 54415 : 8222295: more baseline cleanups from Async Monitor Deflation project

*** 43,71 **** inline void ObjectMonitor::set_header(markOop hdr) { _header = hdr; } - inline jint ObjectMonitor::count() const { - return _count; - } - inline jint ObjectMonitor::waiters() const { return _waiters; } inline void* ObjectMonitor::owner() const { return _owner; } inline void ObjectMonitor::clear() { ! assert(_header != NULL, "Fatal logic error in ObjectMonitor header!"); ! assert(_count == 0, "Fatal logic error in ObjectMonitor count!"); ! assert(_waiters == 0, "Fatal logic error in ObjectMonitor waiters!"); ! assert(_recursions == 0, "Fatal logic error in ObjectMonitor recursions!"); ! assert(_object != NULL, "Fatal logic error in ObjectMonitor object!"); ! assert(_owner == NULL, "Fatal logic error in ObjectMonitor owner!"); _header = NULL; _object = NULL; } --- 43,67 ---- inline void ObjectMonitor::set_header(markOop hdr) { _header = hdr; } inline jint ObjectMonitor::waiters() const { return _waiters; } inline void* ObjectMonitor::owner() const { return _owner; } inline void ObjectMonitor::clear() { ! assert(_header != NULL, "must be non-NULL"); ! assert(_contentions == 0, "must be 0: contentions=%d", _contentions); ! assert(_waiters == 0, "must be 0: waiters=%d", _waiters); ! assert(_recursions == 0, "must be 0: recursions=" INTPTR_FORMAT, _recursions); ! assert(_object != NULL, "must be non-NULL"); ! assert(_owner == NULL, "must be NULL: owner=" INTPTR_FORMAT, p2i(_owner)); _header = NULL; _object = NULL; }
*** 94,107 **** return true; } // return number of threads contending for this monitor inline jint ObjectMonitor::contentions() const { ! return _count; } ! // Do NOT set _count = 0. There is a race such that _count could // be set while inflating prior to setting _owner // Just use Atomic::inc/dec and assert 0 when monitor put on free list inline void ObjectMonitor::set_owner(void* owner) { _owner = owner; _recursions = 0; --- 90,103 ---- return true; } // return number of threads contending for this monitor inline jint ObjectMonitor::contentions() const { ! return _contentions; } ! // Do NOT set _contentions = 0. There is a race such that _contentions could // be set while inflating prior to setting _owner // Just use Atomic::inc/dec and assert 0 when monitor put on free list inline void ObjectMonitor::set_owner(void* owner) { _owner = owner; _recursions = 0;
< prev index next >