diff a/src/hotspot/share/gc/z/zRootsIterator.hpp b/src/hotspot/share/gc/z/zRootsIterator.hpp
--- a/src/hotspot/share/gc/z/zRootsIterator.hpp
+++ b/src/hotspot/share/gc/z/zRootsIterator.hpp
@@ -34,11 +34,12 @@
#include "utilities/globalDefinitions.hpp"
class ZRootsIteratorClosure;
typedef OopStorage::ParState ZOopStorageIterator;
-typedef OopStorageSetStrongParState ZOopStorageSetIterator;
+typedef OopStorageSetStrongParState ZOopStorageSetStrongIterator;
+typedef OopStorageSetWeakParState ZOopStorageSetWeakIterator;
template
class ZSerialOopsDo {
private:
T* const _iter;
@@ -134,12 +135,12 @@
void oops_do(ZRootsIteratorClosure* cl);
};
class ZConcurrentRootsIterator {
private:
- ZOopStorageSetIterator _oop_storage_set_iter;
- const int _cld_claim;
+ ZOopStorageSetStrongIterator _oop_storage_set_iter;
+ const int _cld_claim;
void do_oop_storage_set(ZRootsIteratorClosure* cl);
void do_class_loader_data_graph(ZRootsIteratorClosure* cl);
ZParallelOopsDo _oop_storage_set;
@@ -186,28 +187,20 @@
void oops_do(ZRootsIteratorClosure* cl);
};
class ZConcurrentWeakRootsIterator {
private:
- ZOopStorageIterator _vm_weak_handles_iter;
- ZOopStorageIterator _jni_weak_handles_iter;
- ZOopStorageIterator _string_table_iter;
- ZOopStorageIterator _resolved_method_table_iter;
+ ZOopStorageSetWeakIterator _oop_storage_set_iter;
- void do_vm_weak_handles(ZRootsIteratorClosure* cl);
- void do_jni_weak_handles(ZRootsIteratorClosure* cl);
- void do_string_table(ZRootsIteratorClosure* cl);
- void do_resolved_method_table(ZRootsIteratorClosure* cl);
+ void do_oop_storage_set(ZRootsIteratorClosure* cl);
- ZParallelOopsDo _vm_weak_handles;
- ZParallelOopsDo _jni_weak_handles;
- ZParallelOopsDo _string_table;
- ZParallelOopsDo _resolved_method_table;
+ ZParallelOopsDo _oop_storage_set;
public:
ZConcurrentWeakRootsIterator();
- ~ZConcurrentWeakRootsIterator();
void oops_do(ZRootsIteratorClosure* cl);
+
+ void notify();
};
#endif // SHARE_GC_Z_ZROOTSITERATOR_HPP