< prev index next >

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

Print this page
rev 54386 : 8221766: Load-reference barriers for Shenandoah


 103   // Apply oops, clds and blobs to strongly and weakly reachable roots in the system
 104   template <typename IsAlive>
 105   void update_all_roots(OopClosure* oops,
 106                         CLDClosure* clds,
 107                         CodeBlobClosure* blobs,
 108                         ThreadClosure* thread_cl,
 109                         uint worker_id);
 110 
 111   // For slow debug/verification code
 112   void process_all_roots_slow(OopClosure* oops);
 113 
 114   // Number of worker threads used by the root processor.
 115   uint n_workers() const;
 116 };
 117 
 118 class ShenandoahRootEvacuator : public StackObj {
 119   SubTasksDone* _evacuation_tasks;
 120   StrongRootsScope _srs;
 121   ShenandoahPhaseTimings::Phase _phase;
 122   ShenandoahCsetCodeRootsIterator _coderoots_cset_iterator;

 123 
 124   enum Shenandoah_evacuate_roots_tasks {




 125       SHENANDOAH_EVAC_jvmti_oops_do,
 126       // Leave this one last.
 127       SHENANDOAH_EVAC_NumElements
 128   };
 129 public:
 130   ShenandoahRootEvacuator(ShenandoahHeap* heap, uint n_workers,
 131                           ShenandoahPhaseTimings::Phase phase);
 132   ~ShenandoahRootEvacuator();
 133 
 134   void process_evacuate_roots(OopClosure* oops,
 135                               CodeBlobClosure* blobs,
 136                               uint worker_id);
 137 
 138   // Number of worker threads used by the root processor.
 139   uint n_workers() const;
 140 };
 141 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_HPP


 103   // Apply oops, clds and blobs to strongly and weakly reachable roots in the system
 104   template <typename IsAlive>
 105   void update_all_roots(OopClosure* oops,
 106                         CLDClosure* clds,
 107                         CodeBlobClosure* blobs,
 108                         ThreadClosure* thread_cl,
 109                         uint worker_id);
 110 
 111   // For slow debug/verification code
 112   void process_all_roots_slow(OopClosure* oops);
 113 
 114   // Number of worker threads used by the root processor.
 115   uint n_workers() const;
 116 };
 117 
 118 class ShenandoahRootEvacuator : public StackObj {
 119   SubTasksDone* _evacuation_tasks;
 120   StrongRootsScope _srs;
 121   ShenandoahPhaseTimings::Phase _phase;
 122   ShenandoahCsetCodeRootsIterator _coderoots_cset_iterator;
 123   OopStorage::ParState<false, false> _par_state_string;
 124 
 125   enum Shenandoah_evacuate_roots_tasks {
 126     SHENANDOAH_EVAC_Universe_oops_do,
 127     SHENANDOAH_EVAC_ObjectSynchronizer_oops_do,
 128     SHENANDOAH_EVAC_Management_oops_do,
 129     SHENANDOAH_EVAC_SystemDictionary_oops_do,
 130     SHENANDOAH_EVAC_jvmti_oops_do,
 131     // Leave this one last.
 132     SHENANDOAH_EVAC_NumElements
 133   };
 134 public:
 135   ShenandoahRootEvacuator(ShenandoahHeap* heap, uint n_workers,
 136                           ShenandoahPhaseTimings::Phase phase);
 137   ~ShenandoahRootEvacuator();
 138 
 139   void process_evacuate_roots(OopClosure* oops,
 140                               CodeBlobClosure* blobs,
 141                               uint worker_id);
 142 
 143   // Number of worker threads used by the root processor.
 144   uint n_workers() const;
 145 };
 146 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHROOTPROCESSOR_HPP
< prev index next >