< prev index next >

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

Print this page
rev 59972 : 8250841: Shenandoah: need to reset/finish dead counters for StringTable/ResolvedMethodTable during STW root processing


 129   const ShenandoahPhaseTimings::ParPhase _par_phase;
 130 
 131 public:
 132   ShenandoahWeakRoot(OopStorage* storage,
 133           ShenandoahPhaseTimings::Phase phase, ShenandoahPhaseTimings::ParPhase par_phase);
 134 
 135   template <typename IsAliveClosure, typename KeepAliveClosure>
 136   void weak_oops_do(IsAliveClosure* is_alive, KeepAliveClosure* keep_alive, uint worker_id);
 137 };
 138 
 139 template <bool CONCURRENT>
 140 class ShenandoahWeakRoots {
 141 private:
 142   ShenandoahWeakRoot<CONCURRENT>  _jni_roots;
 143   ShenandoahWeakRoot<CONCURRENT>  _string_table_roots;
 144   ShenandoahWeakRoot<CONCURRENT>  _resolved_method_table_roots;
 145   ShenandoahWeakRoot<CONCURRENT>  _vm_roots;
 146 
 147 public:
 148   ShenandoahWeakRoots();

 149 
 150   template <typename Closure>
 151   void oops_do(Closure* cl, uint worker_id);
 152 };
 153 
 154 template <>
 155 class ShenandoahWeakRoots<false /*concurrent */> {
 156 private:
 157   ShenandoahWeakRoot<false /*concurrent*/>  _jni_roots;
 158   ShenandoahWeakRoot<false /*concurrent*/>  _string_table_roots;
 159   ShenandoahWeakRoot<false /*concurrent*/>  _resolved_method_table_roots;
 160   ShenandoahWeakRoot<false /*concurrent*/>  _vm_roots;
 161 public:
 162   ShenandoahWeakRoots(ShenandoahPhaseTimings::Phase phase);
 163 
 164   template <typename Closure>
 165   void oops_do(Closure* cl, uint worker_id);
 166 
 167   template <typename IsAliveClosure, typename KeepAliveClosure>
 168   void weak_oops_do(IsAliveClosure* is_alive, KeepAliveClosure* keep_alive, uint worker_id);




 129   const ShenandoahPhaseTimings::ParPhase _par_phase;
 130 
 131 public:
 132   ShenandoahWeakRoot(OopStorage* storage,
 133           ShenandoahPhaseTimings::Phase phase, ShenandoahPhaseTimings::ParPhase par_phase);
 134 
 135   template <typename IsAliveClosure, typename KeepAliveClosure>
 136   void weak_oops_do(IsAliveClosure* is_alive, KeepAliveClosure* keep_alive, uint worker_id);
 137 };
 138 
 139 template <bool CONCURRENT>
 140 class ShenandoahWeakRoots {
 141 private:
 142   ShenandoahWeakRoot<CONCURRENT>  _jni_roots;
 143   ShenandoahWeakRoot<CONCURRENT>  _string_table_roots;
 144   ShenandoahWeakRoot<CONCURRENT>  _resolved_method_table_roots;
 145   ShenandoahWeakRoot<CONCURRENT>  _vm_roots;
 146 
 147 public:
 148   ShenandoahWeakRoots();
 149   ~ShenandoahWeakRoots();
 150 
 151   template <typename Closure>
 152   void oops_do(Closure* cl, uint worker_id);
 153 };
 154 
 155 template <>
 156 class ShenandoahWeakRoots<false /*concurrent */> {
 157 private:
 158   ShenandoahWeakRoot<false /*concurrent*/>  _jni_roots;
 159   ShenandoahWeakRoot<false /*concurrent*/>  _string_table_roots;
 160   ShenandoahWeakRoot<false /*concurrent*/>  _resolved_method_table_roots;
 161   ShenandoahWeakRoot<false /*concurrent*/>  _vm_roots;
 162 public:
 163   ShenandoahWeakRoots(ShenandoahPhaseTimings::Phase phase);
 164 
 165   template <typename Closure>
 166   void oops_do(Closure* cl, uint worker_id);
 167 
 168   template <typename IsAliveClosure, typename KeepAliveClosure>
 169   void weak_oops_do(IsAliveClosure* is_alive, KeepAliveClosure* keep_alive, uint worker_id);


< prev index next >