comparison src/share/vm/gc_implementation/g1/g1RemSet.cpp @ 2364:04d1138b4cce

7023747: G1: too strict assert in RefineRecordRefsIntoCSCardTableEntryClosure::do_card_ptr in g1RemSet.cpp Summary: Made sure that the assert looks at ParallelGCThreads. Reviewed-by: stefank, tonyp, jwilhelm, johnc
author brutisso
date Thu, 03 Mar 2011 11:35:50 +0100
parents 1216415d8e35
children 063382f9b575
comparison
equal deleted inserted replaced
2363:c93aa6caa02f 2364:04d1138b4cce
305 // The only time we care about recording cards that 305 // The only time we care about recording cards that
306 // contain references that point into the collection set 306 // contain references that point into the collection set
307 // is during RSet updating within an evacuation pause. 307 // is during RSet updating within an evacuation pause.
308 // In this case worker_i should be the id of a GC worker thread. 308 // In this case worker_i should be the id of a GC worker thread.
309 assert(SafepointSynchronize::is_at_safepoint(), "not during an evacuation pause"); 309 assert(SafepointSynchronize::is_at_safepoint(), "not during an evacuation pause");
310 assert(worker_i < (int) DirtyCardQueueSet::num_par_ids(), "should be a GC worker"); 310 assert(worker_i < (int) (ParallelGCThreads == 0 ? 1 : ParallelGCThreads), "should be a GC worker");
311 311
312 if (_g1rs->concurrentRefineOneCard(card_ptr, worker_i, true)) { 312 if (_g1rs->concurrentRefineOneCard(card_ptr, worker_i, true)) {
313 // 'card_ptr' contains references that point into the collection 313 // 'card_ptr' contains references that point into the collection
314 // set. We need to record the card in the DCQS 314 // set. We need to record the card in the DCQS
315 // (G1CollectedHeap::into_cset_dirty_card_queue_set()) 315 // (G1CollectedHeap::into_cset_dirty_card_queue_set())