equal
deleted
inserted
replaced
4560 // Trying to keep some compilers happy. |
4560 // Trying to keep some compilers happy. |
4561 return NULL; |
4561 return NULL; |
4562 } |
4562 } |
4563 |
4563 |
4564 G1ParGCAllocBuffer::G1ParGCAllocBuffer(size_t gclab_word_size) : |
4564 G1ParGCAllocBuffer::G1ParGCAllocBuffer(size_t gclab_word_size) : |
4565 ParGCAllocBuffer(gclab_word_size), _retired(false) { } |
4565 ParGCAllocBuffer(gclab_word_size), _retired(true) { } |
4566 |
4566 |
4567 G1ParScanThreadState::G1ParScanThreadState(G1CollectedHeap* g1h, uint queue_num, ReferenceProcessor* rp) |
4567 G1ParScanThreadState::G1ParScanThreadState(G1CollectedHeap* g1h, uint queue_num, ReferenceProcessor* rp) |
4568 : _g1h(g1h), |
4568 : _g1h(g1h), |
4569 _refs(g1h->task_queue(queue_num)), |
4569 _refs(g1h->task_queue(queue_num)), |
4570 _dcq(&g1h->dirty_card_queue_set()), |
4570 _dcq(&g1h->dirty_card_queue_set()), |
4924 // available new entries on the queues. So we have to make sure |
4924 // available new entries on the queues. So we have to make sure |
4925 // we drain the queues as necessary. |
4925 // we drain the queues as necessary. |
4926 pss->trim_queue(); |
4926 pss->trim_queue(); |
4927 } |
4927 } |
4928 } while (!offer_termination()); |
4928 } while (!offer_termination()); |
4929 |
|
4930 pss->retire_alloc_buffers(); |
|
4931 } |
4929 } |
4932 |
4930 |
4933 class G1KlassScanClosure : public KlassClosure { |
4931 class G1KlassScanClosure : public KlassClosure { |
4934 G1ParCopyHelper* _closure; |
4932 G1ParCopyHelper* _closure; |
4935 bool _process_only_dirty; |
4933 bool _process_only_dirty; |
5751 &par_task_executor, |
5749 &par_task_executor, |
5752 _gc_timer_stw); |
5750 _gc_timer_stw); |
5753 } |
5751 } |
5754 |
5752 |
5755 _gc_tracer_stw->report_gc_reference_stats(stats); |
5753 _gc_tracer_stw->report_gc_reference_stats(stats); |
5756 // We have completed copying any necessary live referent objects |
5754 |
5757 // (that were not copied during the actual pause) so we can |
5755 // We have completed copying any necessary live referent objects. |
5758 // retire any active alloc buffers |
|
5759 pss.retire_alloc_buffers(); |
|
5760 assert(pss.refs()->is_empty(), "both queue and overflow should be empty"); |
5756 assert(pss.refs()->is_empty(), "both queue and overflow should be empty"); |
5761 |
5757 |
5762 double ref_proc_time = os::elapsedTime() - ref_proc_start; |
5758 double ref_proc_time = os::elapsedTime() - ref_proc_start; |
5763 g1_policy()->phase_times()->record_ref_proc_time(ref_proc_time * 1000.0); |
5759 g1_policy()->phase_times()->record_ref_proc_time(ref_proc_time * 1000.0); |
5764 } |
5760 } |