< prev index next >

src/hotspot/share/runtime/synchronizer.cpp

roman_version

*** 171,181 **** return true; } if (mark->has_monitor()) { ObjectMonitor * const mon = mark->monitor(); ! assert(mon->object() == obj, "invariant"); if (mon->owner() != self) return false; // slow-path for IMS exception if (mon->first_waiter() != NULL) { // We have one or more waiters. Since this is an inflated monitor // that we own, we can transfer one or more threads from the waitset --- 171,181 ---- return true; } if (mark->has_monitor()) { ObjectMonitor * const mon = mark->monitor(); ! assert(oopDesc::equals((oop) mon->object(), obj), "invariant"); if (mon->owner() != self) return false; // slow-path for IMS exception if (mon->first_waiter() != NULL) { // We have one or more waiters. Since this is an inflated monitor // that we own, we can transfer one or more threads from the waitset ***************
*** 215,225 **** if (obj == NULL) return false; // Need to throw NPE const markOop mark = obj->mark(); if (mark->has_monitor()) { ObjectMonitor * const m = mark->monitor(); ! assert(m->object() == obj, "invariant"); Thread * const owner = (Thread *) m->_owner; // Lock contention and Transactional Lock Elision (TLE) diagnostics // and observability // Case: light contention possibly amenable to TLE --- 215,225 ---- if (obj == NULL) return false; // Need to throw NPE const markOop mark = obj->mark(); if (mark->has_monitor()) { ObjectMonitor * const m = mark->monitor(); ! assert(oopDesc::equals((oop) m->object(), obj), "invariant"); Thread * const owner = (Thread *) m->_owner; // Lock contention and Transactional Lock Elision (TLE) diagnostics // and observability // Case: light contention possibly amenable to TLE ***************
*** 1402,1412 **** // CASE: inflated if (mark->has_monitor()) { ObjectMonitor * inf = mark->monitor(); assert(inf->header()->is_neutral(), "invariant"); ! assert(inf->object() == object, "invariant"); assert(ObjectSynchronizer::verify_objmon_isinpool(inf), "monitor is invalid"); return inf; } // CASE: inflation in progress - inflating over a stack-lock. --- 1402,1412 ---- // CASE: inflated if (mark->has_monitor()) { ObjectMonitor * inf = mark->monitor(); assert(inf->header()->is_neutral(), "invariant"); ! assert(oopDesc::equals((oop) inf->object(), object), "invariant"); assert(ObjectSynchronizer::verify_objmon_isinpool(inf), "monitor is invalid"); return inf; } // CASE: inflation in progress - inflating over a stack-lock.
< prev index next >