src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
Print this page
@@ -825,17 +825,19 @@
void PSParallelCompact::post_initialize() {
ParallelScavengeHeap* heap = gc_heap();
assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "Sanity");
MemRegion mr = heap->reserved_region();
- _ref_processor = ReferenceProcessor::create_ref_processor(
- mr, // span
+ _ref_processor =
+ new ReferenceProcessor(mr, // span
+ ParallelRefProcEnabled && (ParallelGCThreads > 1), // mt processing
+ ParallelGCThreads, // mt processing degree
+ true, // mt discovery
+ ParallelGCThreads, // mt discovery degree
true, // atomic_discovery
- true, // mt_discovery
- &_is_alive_closure,
- ParallelGCThreads,
- ParallelRefProcEnabled);
+ &_is_alive_closure, // non-header is alive closure
+ false); // write barrier for next field updates
_counters = new CollectorCounters("PSParallelCompact", 1);
// Initialize static fields in ParCompactionManager.
ParCompactionManager::initialize(mark_bitmap());
}