hotspot/src/share/vm/runtime/objectMonitor.inline.hpp
inline bool ObjectMonitor::check(TRAPS) {
{- -------------------------------------------
(1) カレントスレッドがロックを握っていれば true をリターンする.
そうでなければ, ObjectMonitor::check_slow() を呼んで
IllegalMonitorStateException を pending_exception フィールドにセットした後,
false をリターンする.
---------------------------------------- -}
if (THREAD != _owner) {
if (THREAD->is_lock_owned((address) _owner)) {
_owner = THREAD; // regain ownership of inflated monitor
OwnerIsThread = 1 ;
assert (_recursions == 0, "invariant") ;
} else {
check_slow(THREAD);
return false;
}
}
return true;
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.