src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
Print this page
@@ -794,17 +794,19 @@
"old above young");
_young_generation_boundary = young_gen->eden_space()->bottom();
// Initialize ref handling object for scavenging.
MemRegion mr = young_gen->reserved();
- _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
- NULL, // is_alive_non_header
- ParallelGCThreads,
- ParallelRefProcEnabled);
+ NULL, // header provides liveness info
+ false); // next field updates do not need write barrier
// Cache the cardtable
BarrierSet* bs = Universe::heap()->barrier_set();
assert(bs->kind() == BarrierSet::CardTableModRef, "Wrong barrier set kind");
_card_table = (CardTableExtension*)bs;