< prev index next >

src/hotspot/share/runtime/vframe.cpp

Print this page
rev 57232 : v2.00 -> v2.08 (CR8/v2.08/11-for-jdk14) patches combined into one; merge with jdk-14+25 snapshot; merge with jdk-14+26 snapshot.
rev 57233 : See CR8-to-CR9-changes; merge with 8230876.patch (2019.11.15); merge with jdk-14+25 snapshot; fuzzy merge with jdk-14+26 snapshot.

*** 120,129 **** --- 120,132 ---- GrowableArray<MonitorInfo*>* mons = monitors(); GrowableArray<MonitorInfo*>* result = new GrowableArray<MonitorInfo*>(mons->length()); if (mons->is_empty()) return result; bool found_first_monitor = false; + // For all of the javaVFrame::locked_monitors()() call sites, we + // are either at a safepoint or the calling thread is operating + // on itself so this ObjectMonitorHandle is not strictly necessary. ObjectMonitorHandle omh; ObjectMonitor *waiting_monitor = thread()->current_waiting_monitor(&omh); ObjectMonitor *pending_monitor = NULL; if (waiting_monitor == NULL) { pending_monitor = thread()->current_pending_monitor(&omh);
*** 233,242 **** --- 236,247 ---- // monitor before, then we need to see if we have completed // the lock or if we are blocked trying to acquire it. Only // an inflated monitor that is first on the monitor list in // the first frame can block us on a monitor enter. markWord mark = monitor->owner()->mark(); + // The calling thread is operating on itself so this + // ObjectMonitorHandle is not strictly necessary. ObjectMonitorHandle omh; if (mark.has_monitor() && ( // we have marked ourself as pending on this monitor mark.monitor() == thread()->current_pending_monitor(&omh) || // we are not the owner of this monitor
< prev index next >