< 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;
***************
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;
***************
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_threads> _threads;
ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_code_cache> _code_cache;
ZParallelOopsDo<ZRootsIterator, &ZRootsIterator::do_string_table> _string_table;
public:
! ZRootsIterator();
~ZRootsIterator();
void oops_do(OopClosure* cl, bool visit_jvmti_weak_export = false);
};
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(bool strong_only);
~ZRootsIterator();
void oops_do(OopClosure* cl, bool visit_jvmti_weak_export = false);
};
< prev index next >