< prev index next > src/hotspot/share/gc/z/zRootsIterator.hpp
Print this page
#include "utilities/globalDefinitions.hpp"
class ZRootsIteratorClosure;
typedef OopStorage::ParState<true /* concurrent */, false /* is_const */> ZOopStorageIterator;
! typedef OopStorageSetStrongParState<true /* concurrent */, false /* is_const */> ZOopStorageSetIterator;
template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
class ZSerialOopsDo {
private:
T* const _iter;
#include "utilities/globalDefinitions.hpp"
class ZRootsIteratorClosure;
typedef OopStorage::ParState<true /* concurrent */, false /* is_const */> ZOopStorageIterator;
! typedef OopStorageSetStrongParState<true /* concurrent */, false /* is_const */> ZOopStorageSetStrongIterator;
+ typedef OopStorageSetWeakParState<true /* concurrent */, false /* is_const */> ZOopStorageSetWeakIterator;
template <typename T, void (T::*F)(ZRootsIteratorClosure*)>
class ZSerialOopsDo {
private:
T* const _iter;
void oops_do(ZRootsIteratorClosure* cl);
};
class ZConcurrentRootsIterator {
private:
! ZOopStorageSetIterator _oop_storage_set_iter;
! const int _cld_claim;
void do_oop_storage_set(ZRootsIteratorClosure* cl);
void do_class_loader_data_graph(ZRootsIteratorClosure* cl);
ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_oop_storage_set> _oop_storage_set;
void oops_do(ZRootsIteratorClosure* cl);
};
class ZConcurrentRootsIterator {
private:
! 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<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_oop_storage_set> _oop_storage_set;
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;
! 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);
! ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_vm_weak_handles> _vm_weak_handles;
- ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_jni_weak_handles> _jni_weak_handles;
- ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_string_table> _string_table;
- ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_resolved_method_table> _resolved_method_table;
public:
ZConcurrentWeakRootsIterator();
- ~ZConcurrentWeakRootsIterator();
void oops_do(ZRootsIteratorClosure* cl);
};
#endif // SHARE_GC_Z_ZROOTSITERATOR_HPP
void oops_do(ZRootsIteratorClosure* cl);
};
class ZConcurrentWeakRootsIterator {
private:
! ZOopStorageSetWeakIterator _oop_storage_set_iter;
! void do_oop_storage_set(ZRootsIteratorClosure* cl);
! ZParallelOopsDo<ZConcurrentWeakRootsIterator, &ZConcurrentWeakRootsIterator::do_oop_storage_set> _oop_storage_set;
public:
ZConcurrentWeakRootsIterator();
void oops_do(ZRootsIteratorClosure* cl);
+
+ void notify();
};
#endif // SHARE_GC_Z_ZROOTSITERATOR_HPP
< prev index next >