457 |
457 |
458 BarrierSet::set_barrier_set(new ShenandoahBarrierSet(this)); |
458 BarrierSet::set_barrier_set(new ShenandoahBarrierSet(this)); |
459 |
459 |
460 _max_workers = MAX2(_max_workers, 1U); |
460 _max_workers = MAX2(_max_workers, 1U); |
461 _workers = new ShenandoahWorkGang("Shenandoah GC Threads", _max_workers, |
461 _workers = new ShenandoahWorkGang("Shenandoah GC Threads", _max_workers, |
462 /* are_GC_task_threads */true, |
462 /* are_GC_task_threads */ true, |
463 /* are_ConcurrentGC_threads */false); |
463 /* are_ConcurrentGC_threads */ true); |
464 if (_workers == NULL) { |
464 if (_workers == NULL) { |
465 vm_exit_during_initialization("Failed necessary allocation."); |
465 vm_exit_during_initialization("Failed necessary allocation."); |
466 } else { |
466 } else { |
467 _workers->initialize_workers(); |
467 _workers->initialize_workers(); |
468 } |
468 } |
469 |
469 |
470 if (ShenandoahParallelSafepointThreads > 1) { |
470 if (ShenandoahParallelSafepointThreads > 1) { |
471 _safepoint_workers = new ShenandoahWorkGang("Safepoint Cleanup Thread", |
471 _safepoint_workers = new ShenandoahWorkGang("Safepoint Cleanup Thread", |
472 ShenandoahParallelSafepointThreads, |
472 ShenandoahParallelSafepointThreads, |
473 false, false); |
473 /* are_GC_task_threads */ false, |
|
474 /* are_ConcurrentGC_threads */ false); |
474 _safepoint_workers->initialize_workers(); |
475 _safepoint_workers->initialize_workers(); |
475 } |
476 } |
476 } |
477 } |
477 |
478 |
478 #ifdef _MSC_VER |
479 #ifdef _MSC_VER |