< prev index next >

src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp

Print this page

        

*** 3014,3031 **** uint n_workers = workers->active_workers(); StrongRootsScope srs(n_workers); CMSParInitialMarkTask tsk(this, &srs, n_workers); - gch->set_par_threads(n_workers); initialize_sequential_subtasks_for_young_gen_rescan(n_workers); if (n_workers > 1) { workers->run_task(&tsk); } else { tsk.work(0); } - gch->set_par_threads(0); } else { // The serial version. CLDToOopClosure cld_closure(&notOlder, true); gch->rem_set()->prepare_for_younger_refs_iterate(false); // Not parallel. --- 3014,3029 ----
*** 5085,5096 **** StrongRootsScope srs(n_workers); CMSParRemarkTask tsk(this, cms_space, n_workers, workers, task_queues(), &srs); - // Set up for parallel process_roots work. - gch->set_par_threads(n_workers); // We won't be iterating over the cards in the card table updating // the younger_gen cards, so we shouldn't call the following else // the verification code as well as subsequent younger_refs_iterate // code would get confused. XXX // gch->rem_set()->prepare_for_younger_refs_iterate(true); // parallel --- 5083,5092 ----
*** 5124,5134 **** } else { ReferenceProcessorMTDiscoveryMutator mt(ref_processor(), false); tsk.work(0); } - gch->set_par_threads(0); // 0 ==> non-parallel. // restore, single-threaded for now, any preserved marks // as a result of work_q overflow restore_preserved_marks_if_any(); } --- 5120,5129 ----
< prev index next >