--- a/src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp Fri May 17 15:53:21 2019 +0200
+++ b/src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.cpp Fri May 17 16:02:27 2019 +0200
@@ -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"
@@ -37,7 +38,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"
@@ -277,8 +277,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;
}
}