equal
deleted
inserted
replaced
23 */ |
23 */ |
24 |
24 |
25 #ifndef SHARE_GC_G1_G1BARRIERSET_HPP |
25 #ifndef SHARE_GC_G1_G1BARRIERSET_HPP |
26 #define SHARE_GC_G1_G1BARRIERSET_HPP |
26 #define SHARE_GC_G1_G1BARRIERSET_HPP |
27 |
27 |
28 #include "gc/g1/dirtyCardQueue.hpp" |
28 #include "gc/g1/g1DirtyCardQueue.hpp" |
29 #include "gc/g1/g1SATBMarkQueueSet.hpp" |
29 #include "gc/g1/g1SATBMarkQueueSet.hpp" |
30 #include "gc/shared/cardTableBarrierSet.hpp" |
30 #include "gc/shared/cardTableBarrierSet.hpp" |
31 |
31 |
32 class DirtyCardQueueSet; |
|
33 class CardTable; |
32 class CardTable; |
34 class G1CardTable; |
33 class G1CardTable; |
35 |
34 |
36 // This barrier is specialized to use a logging barrier to support |
35 // This barrier is specialized to use a logging barrier to support |
37 // snapshot-at-the-beginning marking. |
36 // snapshot-at-the-beginning marking. |
40 friend class VMStructs; |
39 friend class VMStructs; |
41 private: |
40 private: |
42 BufferNode::Allocator _satb_mark_queue_buffer_allocator; |
41 BufferNode::Allocator _satb_mark_queue_buffer_allocator; |
43 BufferNode::Allocator _dirty_card_queue_buffer_allocator; |
42 BufferNode::Allocator _dirty_card_queue_buffer_allocator; |
44 G1SATBMarkQueueSet _satb_mark_queue_set; |
43 G1SATBMarkQueueSet _satb_mark_queue_set; |
45 DirtyCardQueueSet _dirty_card_queue_set; |
44 G1DirtyCardQueueSet _dirty_card_queue_set; |
46 |
45 |
47 static G1BarrierSet* g1_barrier_set() { |
46 static G1BarrierSet* g1_barrier_set() { |
48 return barrier_set_cast<G1BarrierSet>(BarrierSet::barrier_set()); |
47 return barrier_set_cast<G1BarrierSet>(BarrierSet::barrier_set()); |
49 } |
48 } |
50 |
49 |
86 |
85 |
87 static G1SATBMarkQueueSet& satb_mark_queue_set() { |
86 static G1SATBMarkQueueSet& satb_mark_queue_set() { |
88 return g1_barrier_set()->_satb_mark_queue_set; |
87 return g1_barrier_set()->_satb_mark_queue_set; |
89 } |
88 } |
90 |
89 |
91 static DirtyCardQueueSet& dirty_card_queue_set() { |
90 static G1DirtyCardQueueSet& dirty_card_queue_set() { |
92 return g1_barrier_set()->_dirty_card_queue_set; |
91 return g1_barrier_set()->_dirty_card_queue_set; |
93 } |
92 } |
94 |
93 |
95 // Callbacks for runtime accesses. |
94 // Callbacks for runtime accesses. |
96 template <DecoratorSet decorators, typename BarrierSetT = G1BarrierSet> |
95 template <DecoratorSet decorators, typename BarrierSetT = G1BarrierSet> |