60 class ConcurrentMark; |
60 class ConcurrentMark; |
61 class ConcurrentMarkThread; |
61 class ConcurrentMarkThread; |
62 class ConcurrentG1Refine; |
62 class ConcurrentG1Refine; |
63 class GenerationCounters; |
63 class GenerationCounters; |
64 |
64 |
65 typedef OverflowTaskQueue<StarTask> RefToScanQueue; |
65 typedef OverflowTaskQueue<StarTask, mtGC> RefToScanQueue; |
66 typedef GenericTaskQueueSet<RefToScanQueue> RefToScanQueueSet; |
66 typedef GenericTaskQueueSet<RefToScanQueue, mtGC> RefToScanQueueSet; |
67 |
67 |
68 typedef int RegionIdx_t; // needs to hold [ 0..max_regions() ) |
68 typedef int RegionIdx_t; // needs to hold [ 0..max_regions() ) |
69 typedef int CardIdx_t; // needs to hold [ 0..CardsPerRegion ) |
69 typedef int CardIdx_t; // needs to hold [ 0..CardsPerRegion ) |
70 |
70 |
71 enum GCAllocPurpose { |
71 enum GCAllocPurpose { |
72 GCAllocForTenured, |
72 GCAllocForTenured, |
73 GCAllocForSurvived, |
73 GCAllocForSurvived, |
74 GCAllocPurposeCount |
74 GCAllocPurposeCount |
75 }; |
75 }; |
76 |
76 |
77 class YoungList : public CHeapObj { |
77 class YoungList : public CHeapObj<mtGC> { |
78 private: |
78 private: |
79 G1CollectedHeap* _g1h; |
79 G1CollectedHeap* _g1h; |
80 |
80 |
81 HeapRegion* _head; |
81 HeapRegion* _head; |
82 |
82 |
1770 |
1770 |
1771 public: |
1771 public: |
1772 G1ParScanThreadState(G1CollectedHeap* g1h, uint queue_num); |
1772 G1ParScanThreadState(G1CollectedHeap* g1h, uint queue_num); |
1773 |
1773 |
1774 ~G1ParScanThreadState() { |
1774 ~G1ParScanThreadState() { |
1775 FREE_C_HEAP_ARRAY(size_t, _surviving_young_words_base); |
1775 FREE_C_HEAP_ARRAY(size_t, _surviving_young_words_base, mtGC); |
1776 } |
1776 } |
1777 |
1777 |
1778 RefToScanQueue* refs() { return _refs; } |
1778 RefToScanQueue* refs() { return _refs; } |
1779 ageTable* age_table() { return &_age_table; } |
1779 ageTable* age_table() { return &_age_table; } |
1780 |
1780 |