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);
|