2256 heap_region_iterate(&cl); |
2256 heap_region_iterate(&cl); |
2257 guarantee(!cl.failures(), "all GC time stamps should have been reset"); |
2257 guarantee(!cl.failures(), "all GC time stamps should have been reset"); |
2258 } |
2258 } |
2259 #endif // PRODUCT |
2259 #endif // PRODUCT |
2260 |
2260 |
2261 void G1CollectedHeap::iterate_dirty_card_closure(CardTableEntryClosure* cl, |
2261 void G1CollectedHeap::iterate_hcc_closure(CardTableEntryClosure* cl, uint worker_i) { |
2262 DirtyCardQueue* into_cset_dcq, |
2262 _cg1r->hot_card_cache()->drain(cl, worker_i); |
2263 bool concurrent, |
2263 } |
2264 uint worker_i) { |
2264 |
2265 // Clean cards in the hot card cache |
2265 void G1CollectedHeap::iterate_dirty_card_closure(CardTableEntryClosure* cl, uint worker_i) { |
2266 G1HotCardCache* hot_card_cache = _cg1r->hot_card_cache(); |
|
2267 hot_card_cache->drain(worker_i, g1_rem_set(), into_cset_dcq); |
|
2268 |
|
2269 DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); |
2266 DirtyCardQueueSet& dcqs = JavaThread::dirty_card_queue_set(); |
2270 size_t n_completed_buffers = 0; |
2267 size_t n_completed_buffers = 0; |
2271 while (dcqs.apply_closure_to_completed_buffer(cl, worker_i, 0, true)) { |
2268 while (dcqs.apply_closure_to_completed_buffer(cl, worker_i, 0, true)) { |
2272 n_completed_buffers++; |
2269 n_completed_buffers++; |
2273 } |
2270 } |