< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahRootProcessor.hpp

Print this page

 67 
 68 public:
 69   ShenandoahWeakSerialRoot(WeakOopsDo oops_do, ShenandoahPhaseTimings::GCParPhases);
 70   void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* keep_alive, uint worker_id);
 71 };
 72 
 73 #if INCLUDE_JVMTI
 74 class ShenandoahJVMTIWeakRoot : public ShenandoahWeakSerialRoot {
 75 public:
 76   ShenandoahJVMTIWeakRoot();
 77 };
 78 #endif // INCLUDE_JVMTI
 79 
 80 #if INCLUDE_JFR
 81 class ShenandoahJFRWeakRoot : public ShenandoahWeakSerialRoot {
 82 public:
 83   ShenandoahJFRWeakRoot();
 84 };
 85 #endif // INCLUDE_JFR
 86 







 87 class ShenandoahSerialWeakRoots {
 88 private:
 89   JVMTI_ONLY(ShenandoahJVMTIWeakRoot _jvmti_weak_roots;)
 90   JFR_ONLY(ShenandoahJFRWeakRoot     _jfr_weak_roots;)

 91 public:
 92   void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* keep_alive, uint worker_id);
 93   void weak_oops_do(OopClosure* cl, uint worker_id);
 94 };
 95 
 96 template <bool CONCURRENT>
 97 class ShenandoahVMRoot {
 98 private:
 99   OopStorage::ParState<CONCURRENT, false /* is_const */> _itr;
100   const ShenandoahPhaseTimings::GCParPhases _phase;
101 public:
102   ShenandoahVMRoot(OopStorage* storage, ShenandoahPhaseTimings::GCParPhases phase);
103 
104   template <typename Closure>
105   void oops_do(Closure* cl, uint worker_id);
106 };
107 
108 template <bool CONCURRENT>
109 class ShenandoahWeakRoot : public ShenandoahVMRoot<CONCURRENT> {
110 public:

 67 
 68 public:
 69   ShenandoahWeakSerialRoot(WeakOopsDo oops_do, ShenandoahPhaseTimings::GCParPhases);
 70   void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* keep_alive, uint worker_id);
 71 };
 72 
 73 #if INCLUDE_JVMTI
 74 class ShenandoahJVMTIWeakRoot : public ShenandoahWeakSerialRoot {
 75 public:
 76   ShenandoahJVMTIWeakRoot();
 77 };
 78 #endif // INCLUDE_JVMTI
 79 
 80 #if INCLUDE_JFR
 81 class ShenandoahJFRWeakRoot : public ShenandoahWeakSerialRoot {
 82 public:
 83   ShenandoahJFRWeakRoot();
 84 };
 85 #endif // INCLUDE_JFR
 86 
 87 #if INCLUDE_TSAN
 88 class ShenandoahTSANWeakRoot : public ShenandoahWeakSerialRoot {
 89 public:
 90   ShenandoahTSANWeakRoot();
 91 };
 92 #endif // INCLUDE_TSAN
 93 
 94 class ShenandoahSerialWeakRoots {
 95 private:
 96   JVMTI_ONLY(ShenandoahJVMTIWeakRoot _jvmti_weak_roots;)
 97   JFR_ONLY(ShenandoahJFRWeakRoot     _jfr_weak_roots;)
 98   TSAN_ONLY(ShenandoahTSANWeakRoot   _tsan_weak_roots;)
 99 public:
100   void weak_oops_do(BoolObjectClosure* is_alive, OopClosure* keep_alive, uint worker_id);
101   void weak_oops_do(OopClosure* cl, uint worker_id);
102 };
103 
104 template <bool CONCURRENT>
105 class ShenandoahVMRoot {
106 private:
107   OopStorage::ParState<CONCURRENT, false /* is_const */> _itr;
108   const ShenandoahPhaseTimings::GCParPhases _phase;
109 public:
110   ShenandoahVMRoot(OopStorage* storage, ShenandoahPhaseTimings::GCParPhases phase);
111 
112   template <typename Closure>
113   void oops_do(Closure* cl, uint worker_id);
114 };
115 
116 template <bool CONCURRENT>
117 class ShenandoahWeakRoot : public ShenandoahVMRoot<CONCURRENT> {
118 public:
< prev index next >