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