< prev index next >

src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp

Print this page
rev 11459 : create_thread_failed: fix errors from thread creation failures
rev 11460 : refactor: switch to update_active_threads()

*** 2886,2896 **** StrongRootsScope srs(n_workers); CMSParInitialMarkTask tsk(this, &srs, n_workers); initialize_sequential_subtasks_for_young_gen_rescan(n_workers); ! if (n_workers > 1) { workers->run_task(&tsk); } else { tsk.work(0); } } else { --- 2886,2899 ---- StrongRootsScope srs(n_workers); CMSParInitialMarkTask tsk(this, &srs, n_workers); initialize_sequential_subtasks_for_young_gen_rescan(n_workers); ! // If the total workers is greater than 1, then multiple workers ! // may be used at some time and the initialization has been set ! // such that the single threaded path cannot be used. ! if (workers->total_workers() > 1) { workers->run_task(&tsk); } else { tsk.work(0); } } else {
*** 3505,3515 **** bool CMSCollector::do_marking_mt() { assert(ConcGCThreads > 0 && conc_workers() != NULL, "precondition"); uint num_workers = AdaptiveSizePolicy::calc_active_conc_workers(conc_workers()->total_workers(), conc_workers()->active_workers(), Threads::number_of_non_daemon_threads()); ! conc_workers()->set_active_workers(num_workers); CompactibleFreeListSpace* cms_space = _cmsGen->cmsSpace(); CMSConcMarkingTask tsk(this, cms_space, --- 3508,3518 ---- bool CMSCollector::do_marking_mt() { assert(ConcGCThreads > 0 && conc_workers() != NULL, "precondition"); uint num_workers = AdaptiveSizePolicy::calc_active_conc_workers(conc_workers()->total_workers(), conc_workers()->active_workers(), Threads::number_of_non_daemon_threads()); ! num_workers = conc_workers()->update_active_workers(num_workers); CompactibleFreeListSpace* cms_space = _cmsGen->cmsSpace(); CMSConcMarkingTask tsk(this, cms_space,
< prev index next >