< prev index next >

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

Print this page
*** 34,11 ***
  #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;
--- 34,12 ---
  #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;

*** 134,12 ***
    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;
--- 135,12 ---
    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;

*** 186,28 ***
    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
--- 187,20 ---
    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 >