< prev index next >

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

Concurrent class unloading
   void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* cl);
 };
 
 class ZRootsIterator {
 private:
+  bool                _strong_only;
   ZOopStorageIterator _vm_weak_handles_iter;
   ZOopStorageIterator _jni_handles_iter;
   ZOopStorageIterator _jni_weak_handles_iter;
   ZOopStorageIterator _string_table_iter;
 

@@ -92,10 +93,11 void do_jvmti_export(OopClosure* cl); void do_jvmti_weak_export(OopClosure* cl); void do_jfr_weak(OopClosure* cl); void do_system_dictionary(OopClosure* cl); void do_class_loader_data_graph(OopClosure* cl); + void do_class_loader_data_graph_strong_only(OopClosure* cl); void do_threads(OopClosure* cl); void do_code_cache(OopClosure* cl); void do_string_table(OopClosure* cl); ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_universe> _universe;
@@ -107,16 +109,17 ZSerialOopsDo<ZRootsIterator, &ZRootsIterator::do_system_dictionary> _system_dictionary; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_vm_weak_handles> _vm_weak_handles; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_jni_handles> _jni_handles; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_jni_weak_handles> _jni_weak_handles; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_class_loader_data_graph> _class_loader_data_graph; + ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_class_loader_data_graph_strong_only> _class_loader_data_graph_strong_only; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_threads> _threads; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_code_cache> _code_cache; ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_string_table> _string_table; public: - ZRootsIterator(); + ZRootsIterator(bool strong_only); ~ZRootsIterator(); void oops_do(OopClosure* cl, bool visit_jvmti_weak_export = false); };
< prev index next >