< prev index next >

src/hotspot/share/runtime/deoptimization.cpp

Print this page
rev 47287 : Port 09.17.Thread_SMR_logging_update from JDK9 to JDK10
rev 47289 : eosterlund, stefank CR - refactor code into threadSMR.cpp and threadSMR.hpp

*** 48,57 **** --- 48,58 ---- #include "runtime/interfaceSupport.hpp" #include "runtime/sharedRuntime.hpp" #include "runtime/signature.hpp" #include "runtime/stubRoutines.hpp" #include "runtime/thread.hpp" + #include "runtime/threadSMR.hpp" #include "runtime/vframe.hpp" #include "runtime/vframeArray.hpp" #include "runtime/vframe_hp.hpp" #include "utilities/events.hpp" #include "utilities/xmlstream.hpp"
*** 1301,1311 **** return; } assert(SafepointSynchronize::is_at_safepoint(), "must only be called from safepoint"); GrowableArray<Handle>* objects_to_revoke = new GrowableArray<Handle>(); ! for (JavaThread* jt = Threads::first(); jt != NULL ; jt = jt->next()) { if (jt->has_last_Java_frame()) { StackFrameStream sfs(jt, true); while (!sfs.is_done()) { frame* cur = sfs.current(); if (cb->contains(cur->pc())) { --- 1302,1315 ---- return; } assert(SafepointSynchronize::is_at_safepoint(), "must only be called from safepoint"); GrowableArray<Handle>* objects_to_revoke = new GrowableArray<Handle>(); ! { ! ThreadsListHandle tlh; ! JavaThreadIterator jti(tlh.list()); ! for (JavaThread* jt = jti.first(); jt != NULL; jt = jti.next()) { if (jt->has_last_Java_frame()) { StackFrameStream sfs(jt, true); while (!sfs.is_done()) { frame* cur = sfs.current(); if (cb->contains(cur->pc())) {
*** 1319,1328 **** --- 1323,1333 ---- collect_monitors(cvf, objects_to_revoke); } sfs.next(); } } + } } BiasedLocking::revoke_at_safepoint(objects_to_revoke); }
< prev index next >