diff -r 2c3cc4b01880 -r c16ac7a2eba4 src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp --- a/src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp Wed Oct 30 16:14:56 2019 +0100 +++ b/src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp Wed Oct 30 19:43:52 2019 +0100 @@ -29,6 +29,7 @@ #include "gc/shared/strongRootsScope.hpp" #include "jfr/leakprofiler/utilities/unifiedOop.hpp" #include "jfr/leakprofiler/checkpoint/rootResolver.hpp" +#include "jfr/utilities/jfrThreadIterator.hpp" #include "memory/iterator.hpp" #include "memory/universe.hpp" #include "oops/klass.hpp" @@ -36,7 +37,6 @@ #include "prims/jvmtiThreadState.hpp" #include "runtime/frame.inline.hpp" #include "runtime/mutexLocker.hpp" -#include "runtime/threadSMR.inline.hpp" #include "runtime/vframe_hp.hpp" #include "services/management.hpp" #include "utilities/growableArray.hpp" @@ -256,8 +256,9 @@ public: ReferenceToThreadRootClosure(RootCallback& callback) :_callback(callback), _complete(false) { assert_locked_or_safepoint(Threads_lock); - for (JavaThreadIteratorWithHandle jtiwh; JavaThread *jt = jtiwh.next(); ) { - if (do_thread_roots(jt)) { + JfrJavaThreadIterator iter; + while (iter.has_next()) { + if (do_thread_roots(iter.next())) { return; } }