< prev index next >

src/share/vm/gc/parallel/psScavenge.cpp

Print this page
rev 11459 : create_thread_failed: fix errors from thread creation failures

*** 389,399 **** q->enqueue(new ScavengeRootsTask(ScavengeRootsTask::code_cache)); ParallelTaskTerminator terminator( active_workers, (TaskQueueSetSuper*) promotion_manager->stack_array_depth()); ! if (active_workers > 1) { for (uint j = 0; j < active_workers; j++) { q->enqueue(new StealTask(&terminator)); } } --- 389,403 ---- q->enqueue(new ScavengeRootsTask(ScavengeRootsTask::code_cache)); ParallelTaskTerminator terminator( active_workers, (TaskQueueSetSuper*) promotion_manager->stack_array_depth()); ! // If active_workers can exceed 1, add a StrealTask. ! // PSPromotionManager::drain_stacks_depth() does not fully drain its ! // stacks and expects a StealTask to complete the draining if ! // ParallelGCThreads is > 1. ! if (gc_task_manager()->workers() > 1) { for (uint j = 0; j < active_workers; j++) { q->enqueue(new StealTask(&terminator)); } }
< prev index next >