< prev index next >

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

Print this page
rev 53044 : Concurrent stringtable processing


  38 public:
  39   ParallelCLDRootIterator();
  40   void root_cld_do(CLDClosure* strong, CLDClosure* weak);
  41 };
  42 
  43 enum Shenandoah_process_roots_tasks {
  44   SHENANDOAH_RP_PS_Universe_oops_do,
  45   SHENANDOAH_RP_PS_JNIHandles_oops_do,
  46   SHENANDOAH_RP_PS_JNIHandles_weak_oops_do,
  47   SHENANDOAH_RP_PS_ObjectSynchronizer_oops_do,
  48   SHENANDOAH_RP_PS_Management_oops_do,
  49   SHENANDOAH_RP_PS_SystemDictionary_oops_do,
  50   SHENANDOAH_RP_PS_jvmti_oops_do,
  51   // Leave this one last.
  52   SHENANDOAH_RP_PS_NumElements
  53 };
  54 
  55 class ShenandoahRootProcessor : public StackObj {
  56   SubTasksDone* _process_strong_tasks;
  57   StrongRootsScope _srs;
  58   OopStorage::ParState<false, false> _par_state_string;
  59   ShenandoahPhaseTimings::Phase _phase;
  60   ParallelCLDRootIterator   _cld_iterator;
  61   ShenandoahAllCodeRootsIterator _coderoots_all_iterator;
  62   CodeBlobClosure* _threads_nmethods_cl;
  63 
  64   void process_java_roots(OopClosure* scan_non_heap_roots,
  65                           CLDClosure* scan_strong_clds,
  66                           CLDClosure* scan_weak_clds,
  67                           CodeBlobClosure* scan_strong_code,
  68                           ThreadClosure* thread_cl,
  69                           uint worker_i);
  70 
  71   void process_vm_roots(OopClosure* scan_non_heap_roots,
  72                         OopClosure* scan_non_heap_weak_roots,
  73                         OopClosure* weak_jni_roots,
  74                         uint worker_i);
  75 
  76 public:
  77   ShenandoahRootProcessor(ShenandoahHeap* heap, uint n_workers,
  78                           ShenandoahPhaseTimings::Phase phase);




  38 public:
  39   ParallelCLDRootIterator();
  40   void root_cld_do(CLDClosure* strong, CLDClosure* weak);
  41 };
  42 
  43 enum Shenandoah_process_roots_tasks {
  44   SHENANDOAH_RP_PS_Universe_oops_do,
  45   SHENANDOAH_RP_PS_JNIHandles_oops_do,
  46   SHENANDOAH_RP_PS_JNIHandles_weak_oops_do,
  47   SHENANDOAH_RP_PS_ObjectSynchronizer_oops_do,
  48   SHENANDOAH_RP_PS_Management_oops_do,
  49   SHENANDOAH_RP_PS_SystemDictionary_oops_do,
  50   SHENANDOAH_RP_PS_jvmti_oops_do,
  51   // Leave this one last.
  52   SHENANDOAH_RP_PS_NumElements
  53 };
  54 
  55 class ShenandoahRootProcessor : public StackObj {
  56   SubTasksDone* _process_strong_tasks;
  57   StrongRootsScope _srs;

  58   ShenandoahPhaseTimings::Phase _phase;
  59   ParallelCLDRootIterator   _cld_iterator;
  60   ShenandoahAllCodeRootsIterator _coderoots_all_iterator;
  61   CodeBlobClosure* _threads_nmethods_cl;
  62 
  63   void process_java_roots(OopClosure* scan_non_heap_roots,
  64                           CLDClosure* scan_strong_clds,
  65                           CLDClosure* scan_weak_clds,
  66                           CodeBlobClosure* scan_strong_code,
  67                           ThreadClosure* thread_cl,
  68                           uint worker_i);
  69 
  70   void process_vm_roots(OopClosure* scan_non_heap_roots,
  71                         OopClosure* scan_non_heap_weak_roots,
  72                         OopClosure* weak_jni_roots,
  73                         uint worker_i);
  74 
  75 public:
  76   ShenandoahRootProcessor(ShenandoahHeap* heap, uint n_workers,
  77                           ShenandoahPhaseTimings::Phase phase);


< prev index next >