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()) |