< prev index next >

src/hotspot/share/gc/z/zRootsIterator.hpp

concurrent root iterator

*** 76,116 **** void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl); }; class ZRootsIterator { private: - ZOopStorageIterator _jni_handles_iter; - void do_universe(OopClosure* cl); - void do_jni_handles(OopClosure* cl); void do_object_synchronizer(OopClosure* cl); void do_management(OopClosure* cl); void do_jvmti_export(OopClosure* cl); void do_jvmti_weak_export(OopClosure* cl); void do_system_dictionary(OopClosure* cl); - void do_class_loader_data_graph(OopClosure* cl); void do_threads(OopClosure* cl); void do_code_cache(OopClosure* cl); ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_universe> _universe; ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_object_synchronizer> _object_synchronizer; ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_management> _management; ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_jvmti_export> _jvmti_export; ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_jvmti_weak_export> _jvmti_weak_export; ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_system_dictionary> _system_dictionary; - ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_jni_handles> _jni_handles; - ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_class_loader_data_graph> _class_loader_data_graph; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_threads> _threads; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_code_cache> _code_cache; public: ZRootsIterator(); ~ZRootsIterator(); void oops_do(OopClosure* cl, bool visit_jvmti_weak_export = false); }; class ZWeakRootsIterator { private: void do_jvmti_weak_export(BoolObjectClosure* is_alive, OopClosure* cl); void do_jfr_weak(BoolObjectClosure* is_alive, OopClosure* cl); --- 76,127 ---- void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl); }; class ZRootsIterator { private: void do_universe(OopClosure* cl); void do_object_synchronizer(OopClosure* cl); void do_management(OopClosure* cl); void do_jvmti_export(OopClosure* cl); void do_jvmti_weak_export(OopClosure* cl); void do_system_dictionary(OopClosure* cl); void do_threads(OopClosure* cl); void do_code_cache(OopClosure* cl); ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_universe> _universe; ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_object_synchronizer> _object_synchronizer; ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_management> _management; ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_jvmti_export> _jvmti_export; ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_jvmti_weak_export> _jvmti_weak_export; ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_system_dictionary> _system_dictionary; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_threads> _threads; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_code_cache> _code_cache; public: ZRootsIterator(); ~ZRootsIterator(); void oops_do(OopClosure* cl, bool visit_jvmti_weak_export = false); }; + class ZConcurrentRootsIterator { + private: + ZConcurrentOopStorageIterator _jni_handles_iter; + + void do_jni_handles(OopClosure* cl); + void do_class_loader_data_graph(OopClosure* cl); + + ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_jni_handles> _jni_handles; + ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_class_loader_data_graph> _class_loader_data_graph; + + public: + ZConcurrentRootsIterator(); + ~ZConcurrentRootsIterator(); + + void oops_do(OopClosure* cl); + }; + class ZWeakRootsIterator { private: void do_jvmti_weak_export(BoolObjectClosure* is_alive, OopClosure* cl); void do_jfr_weak(BoolObjectClosure* is_alive, OopClosure* cl);
< prev index next >