< prev index next >
src/hotspot/share/gc/z/zRootsIterator.hpp
Print this page
*** 23,42 ****
--- 23,44 ----
#ifndef SHARE_GC_Z_ZROOTSITERATOR_HPP
#define SHARE_GC_Z_ZROOTSITERATOR_HPP
#include "gc/shared/oopStorageParState.hpp"
+ #include "gc/shared/oopStorageSetParState.hpp"
#include "gc/shared/suspendibleThreadSet.hpp"
#include "memory/allocation.hpp"
#include "memory/iterator.hpp"
#include "runtime/thread.hpp"
#include "runtime/threadSMR.hpp"
#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;
*** 132,151 ****
void oops_do(ZRootsIteratorClosure* cl);
};
class ZConcurrentRootsIterator {
private:
! ZOopStorageIterator _jni_handles_iter;
! ZOopStorageIterator _vm_handles_iter;
! const int _cld_claim;
! void do_jni_handles(ZRootsIteratorClosure* cl);
! void do_vm_handles(ZRootsIteratorClosure* cl);
void do_class_loader_data_graph(ZRootsIteratorClosure* cl);
! ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_jni_handles> _jni_handles;
! ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_vm_handles> _vm_handles;
ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_class_loader_data_graph> _class_loader_data_graph;
public:
ZConcurrentRootsIterator(int cld_claim);
~ZConcurrentRootsIterator();
--- 134,150 ----
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;
ZParallelOopsDo<ZConcurrentRootsIterator, &ZConcurrentRootsIterator::do_class_loader_data_graph> _class_loader_data_graph;
public:
ZConcurrentRootsIterator(int cld_claim);
~ZConcurrentRootsIterator();
< prev index next >