1.1 --- a/src/share/vm/gc_implementation/g1/g1RootProcessor.cpp Mon Sep 21 21:41:11 2015 +0200 1.2 +++ b/src/share/vm/gc_implementation/g1/g1RootProcessor.cpp Wed Sep 30 14:50:11 2015 +0200 1.3 @@ -117,7 +117,7 @@ 1.4 1.5 G1RootProcessor::G1RootProcessor(G1CollectedHeap* g1h) : 1.6 _g1h(g1h), 1.7 - _process_strong_tasks(new SubTasksDone(G1RP_PS_NumElements)), 1.8 + _process_strong_tasks(G1RP_PS_NumElements), 1.9 _srs(g1h), 1.10 _lock(Mutex::leaf, "G1 Root Scanning barrier lock", false), 1.11 _n_workers_discovered_strong_classes(0) {} 1.12 @@ -160,7 +160,7 @@ 1.13 { 1.14 // Now the CM ref_processor roots. 1.15 G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::CMRefRoots, worker_i); 1.16 - if (!_process_strong_tasks->is_task_claimed(G1RP_PS_refProcessor_oops_do)) { 1.17 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_refProcessor_oops_do)) { 1.18 // We need to treat the discovered reference lists of the 1.19 // concurrent mark ref processor as roots and keep entries 1.20 // (which are added by the marking threads) on them live 1.21 @@ -203,12 +203,12 @@ 1.22 // as implicitly live). 1.23 { 1.24 G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::SATBFiltering, worker_i); 1.25 - if (!_process_strong_tasks->is_task_claimed(G1RP_PS_filter_satb_buffers) && _g1h->mark_in_progress()) { 1.26 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_filter_satb_buffers) && _g1h->mark_in_progress()) { 1.27 JavaThread::satb_mark_queue_set().filter_thread_buffers(); 1.28 } 1.29 } 1.30 1.31 - _process_strong_tasks->all_tasks_completed(); 1.32 + _process_strong_tasks.all_tasks_completed(); 1.33 } 1.34 1.35 void G1RootProcessor::process_strong_roots(OopClosure* oops, 1.36 @@ -218,7 +218,7 @@ 1.37 process_java_roots(oops, clds, clds, NULL, blobs, NULL, 0); 1.38 process_vm_roots(oops, NULL, NULL, 0); 1.39 1.40 - _process_strong_tasks->all_tasks_completed(); 1.41 + _process_strong_tasks.all_tasks_completed(); 1.42 } 1.43 1.44 void G1RootProcessor::process_all_roots(OopClosure* oops, 1.45 @@ -228,11 +228,11 @@ 1.46 process_java_roots(oops, NULL, clds, clds, NULL, NULL, 0); 1.47 process_vm_roots(oops, oops, NULL, 0); 1.48 1.49 - if (!_process_strong_tasks->is_task_claimed(G1RP_PS_CodeCache_oops_do)) { 1.50 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_CodeCache_oops_do)) { 1.51 CodeCache::blobs_do(blobs); 1.52 } 1.53 1.54 - _process_strong_tasks->all_tasks_completed(); 1.55 + _process_strong_tasks.all_tasks_completed(); 1.56 } 1.57 1.58 void G1RootProcessor::process_java_roots(OopClosure* strong_roots, 1.59 @@ -248,7 +248,7 @@ 1.60 // let the thread process the weak CLDs and nmethods. 1.61 { 1.62 G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::CLDGRoots, worker_i); 1.63 - if (!_process_strong_tasks->is_task_claimed(G1RP_PS_ClassLoaderDataGraph_oops_do)) { 1.64 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_ClassLoaderDataGraph_oops_do)) { 1.65 ClassLoaderDataGraph::roots_cld_do(strong_clds, weak_clds); 1.66 } 1.67 } 1.68 @@ -265,49 +265,49 @@ 1.69 uint worker_i) { 1.70 { 1.71 G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::UniverseRoots, worker_i); 1.72 - if (!_process_strong_tasks->is_task_claimed(G1RP_PS_Universe_oops_do)) { 1.73 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_Universe_oops_do)) { 1.74 Universe::oops_do(strong_roots); 1.75 } 1.76 } 1.77 1.78 { 1.79 G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::JNIRoots, worker_i); 1.80 - if (!_process_strong_tasks->is_task_claimed(G1RP_PS_JNIHandles_oops_do)) { 1.81 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_JNIHandles_oops_do)) { 1.82 JNIHandles::oops_do(strong_roots); 1.83 } 1.84 } 1.85 1.86 { 1.87 G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::ObjectSynchronizerRoots, worker_i); 1.88 - if (!_process_strong_tasks-> is_task_claimed(G1RP_PS_ObjectSynchronizer_oops_do)) { 1.89 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_ObjectSynchronizer_oops_do)) { 1.90 ObjectSynchronizer::oops_do(strong_roots); 1.91 } 1.92 } 1.93 1.94 { 1.95 G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::FlatProfilerRoots, worker_i); 1.96 - if (!_process_strong_tasks->is_task_claimed(G1RP_PS_FlatProfiler_oops_do)) { 1.97 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_FlatProfiler_oops_do)) { 1.98 FlatProfiler::oops_do(strong_roots); 1.99 } 1.100 } 1.101 1.102 { 1.103 G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::ManagementRoots, worker_i); 1.104 - if (!_process_strong_tasks->is_task_claimed(G1RP_PS_Management_oops_do)) { 1.105 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_Management_oops_do)) { 1.106 Management::oops_do(strong_roots); 1.107 } 1.108 } 1.109 1.110 { 1.111 G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::JVMTIRoots, worker_i); 1.112 - if (!_process_strong_tasks->is_task_claimed(G1RP_PS_jvmti_oops_do)) { 1.113 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_jvmti_oops_do)) { 1.114 JvmtiExport::oops_do(strong_roots); 1.115 } 1.116 } 1.117 1.118 { 1.119 G1GCParPhaseTimesTracker x(phase_times, G1GCPhaseTimes::SystemDictionaryRoots, worker_i); 1.120 - if (!_process_strong_tasks->is_task_claimed(G1RP_PS_SystemDictionary_oops_do)) { 1.121 + if (!_process_strong_tasks.is_task_claimed(G1RP_PS_SystemDictionary_oops_do)) { 1.122 SystemDictionary::roots_oops_do(strong_roots, weak_roots); 1.123 } 1.124 } 1.125 @@ -335,5 +335,5 @@ 1.126 } 1.127 1.128 void G1RootProcessor::set_num_workers(int active_workers) { 1.129 - _process_strong_tasks->set_n_threads(active_workers); 1.130 + _process_strong_tasks.set_n_threads(active_workers); 1.131 }