1788 _expand_heap_after_alloc_failure(true),
1789 _surviving_young_words(NULL),
1790 _old_marking_cycles_started(0),
1791 _old_marking_cycles_completed(0),
1792 _concurrent_cycle_started(false),
1793 _heap_summary_sent(false),
1794 _in_cset_fast_test(),
1795 _dirty_cards_region_list(NULL),
1796 _worker_cset_start_region(NULL),
1797 _worker_cset_start_region_time_stamp(NULL),
1798 _gc_timer_stw(new (ResourceObj::C_HEAP, mtGC) STWGCTimer()),
1799 _gc_timer_cm(new (ResourceObj::C_HEAP, mtGC) ConcurrentGCTimer()),
1800 _gc_tracer_stw(new (ResourceObj::C_HEAP, mtGC) G1NewTracer()),
1801 _gc_tracer_cm(new (ResourceObj::C_HEAP, mtGC) G1OldTracer()) {
1802
1803 _g1h = this;
1804 if (_process_strong_tasks == NULL || !_process_strong_tasks->valid()) {
1805 vm_exit_during_initialization("Failed necessary allocation.");
1806 }
1807
1808 _allocator = G1Allocator::create_allocator(_g1h);
1809 _humongous_object_threshold_in_words = HeapRegion::GrainWords / 2;
1810
1811 int n_queues = MAX2((int)ParallelGCThreads, 1);
1812 _task_queues = new RefToScanQueueSet(n_queues);
1813
1814 uint n_rem_sets = HeapRegionRemSet::num_par_rem_sets();
1815 assert(n_rem_sets > 0, "Invariant.");
1816
1817 _worker_cset_start_region = NEW_C_HEAP_ARRAY(HeapRegion*, n_queues, mtGC);
1818 _worker_cset_start_region_time_stamp = NEW_C_HEAP_ARRAY(uint, n_queues, mtGC);
1819 _evacuation_failed_info_array = NEW_C_HEAP_ARRAY(EvacuationFailedInfo, n_queues, mtGC);
1820
1821 for (int i = 0; i < n_queues; i++) {
1822 RefToScanQueue* q = new RefToScanQueue();
1823 q->initialize();
1824 _task_queues->register_queue(i, q);
1825 ::new (&_evacuation_failed_info_array[i]) EvacuationFailedInfo();
1826 }
1827 clear_cset_start_regions();
1828
|
1788 _expand_heap_after_alloc_failure(true),
1789 _surviving_young_words(NULL),
1790 _old_marking_cycles_started(0),
1791 _old_marking_cycles_completed(0),
1792 _concurrent_cycle_started(false),
1793 _heap_summary_sent(false),
1794 _in_cset_fast_test(),
1795 _dirty_cards_region_list(NULL),
1796 _worker_cset_start_region(NULL),
1797 _worker_cset_start_region_time_stamp(NULL),
1798 _gc_timer_stw(new (ResourceObj::C_HEAP, mtGC) STWGCTimer()),
1799 _gc_timer_cm(new (ResourceObj::C_HEAP, mtGC) ConcurrentGCTimer()),
1800 _gc_tracer_stw(new (ResourceObj::C_HEAP, mtGC) G1NewTracer()),
1801 _gc_tracer_cm(new (ResourceObj::C_HEAP, mtGC) G1OldTracer()) {
1802
1803 _g1h = this;
1804 if (_process_strong_tasks == NULL || !_process_strong_tasks->valid()) {
1805 vm_exit_during_initialization("Failed necessary allocation.");
1806 }
1807
1808 _allocator = AllocRegionManager::create_allocator(_g1h);
1809 _humongous_object_threshold_in_words = HeapRegion::GrainWords / 2;
1810
1811 int n_queues = MAX2((int)ParallelGCThreads, 1);
1812 _task_queues = new RefToScanQueueSet(n_queues);
1813
1814 uint n_rem_sets = HeapRegionRemSet::num_par_rem_sets();
1815 assert(n_rem_sets > 0, "Invariant.");
1816
1817 _worker_cset_start_region = NEW_C_HEAP_ARRAY(HeapRegion*, n_queues, mtGC);
1818 _worker_cset_start_region_time_stamp = NEW_C_HEAP_ARRAY(uint, n_queues, mtGC);
1819 _evacuation_failed_info_array = NEW_C_HEAP_ARRAY(EvacuationFailedInfo, n_queues, mtGC);
1820
1821 for (int i = 0; i < n_queues; i++) {
1822 RefToScanQueue* q = new RefToScanQueue();
1823 q->initialize();
1824 _task_queues->register_queue(i, q);
1825 ::new (&_evacuation_failed_info_array[i]) EvacuationFailedInfo();
1826 }
1827 clear_cset_start_regions();
1828
|