< prev index next >
src/hotspot/share/gc/z/zRootsIterator.hpp
Print this page
@@ -23,20 +23,22 @@
#ifndef SHARE_GC_Z_ZROOTSITERATOR_HPP
#define SHARE_GC_Z_ZROOTSITERATOR_HPP
#include "gc/shared/oopStorageParState.hpp"
+#include "gc/shared/oopStorageSetParState.hpp"
#include "gc/shared/suspendibleThreadSet.hpp"
#include "memory/allocation.hpp"
#include "memory/iterator.hpp"
#include "runtime/thread.hpp"
#include "runtime/threadSMR.hpp"
#include "utilities/globalDefinitions.hpp"
class ZRootsIteratorClosure;
typedef OopStorage::ParState<true /* concurrent */, false /* is_const */> ZOopStorageIterator;
+typedef OopStorageSetStrongParState<true /* concurrent */, false /* is_const */> ZOopStorageSetIterator;
template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
class ZSerialOopsDo {
private:
T* const _iter;
@@ -132,20 +134,17 @@
void oops_do(ZRootsIteratorClosure* cl);
};
class ZConcurrentRootsIterator {
private:
- ZOopStorageIterator _jni_handles_iter;
- ZOopStorageIterator _vm_handles_iter;
- const int _cld_claim;
+ ZOopStorageSetIterator _oop_storage_set_iter;
+ const int _cld_claim;
- void do_jni_handles(ZRootsIteratorClosure* cl);
- void do_vm_handles(ZRootsIteratorClosure* cl);
+ void do_oop_storage_set(ZRootsIteratorClosure* cl);
void do_class_loader_data_graph(ZRootsIteratorClosure* cl);
- ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_jni_handles> _jni_handles;
- ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_vm_handles> _vm_handles;
+ ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_oop_storage_set> _oop_storage_set;
ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_class_loader_data_graph> _class_loader_data_graph;
public:
ZConcurrentRootsIterator(int cld_claim);
~ZConcurrentRootsIterator();
< prev index next >