equal
deleted
inserted
replaced
37 // snapshot-at-the-beginning marking. |
37 // snapshot-at-the-beginning marking. |
38 |
38 |
39 class G1BarrierSet: public CardTableBarrierSet { |
39 class G1BarrierSet: public CardTableBarrierSet { |
40 friend class VMStructs; |
40 friend class VMStructs; |
41 private: |
41 private: |
42 static G1SATBMarkQueueSet _satb_mark_queue_set; |
42 G1SATBMarkQueueSet _satb_mark_queue_set; |
43 static DirtyCardQueueSet _dirty_card_queue_set; |
43 DirtyCardQueueSet _dirty_card_queue_set; |
|
44 |
|
45 static G1BarrierSet* g1_barrier_set() { |
|
46 return barrier_set_cast<G1BarrierSet>(BarrierSet::barrier_set()); |
|
47 } |
44 |
48 |
45 public: |
49 public: |
46 G1BarrierSet(G1CardTable* table); |
50 G1BarrierSet(G1CardTable* table); |
47 ~G1BarrierSet() { } |
51 ~G1BarrierSet() { } |
48 |
52 |
73 virtual void on_thread_create(Thread* thread); |
77 virtual void on_thread_create(Thread* thread); |
74 virtual void on_thread_destroy(Thread* thread); |
78 virtual void on_thread_destroy(Thread* thread); |
75 virtual void on_thread_attach(JavaThread* thread); |
79 virtual void on_thread_attach(JavaThread* thread); |
76 virtual void on_thread_detach(JavaThread* thread); |
80 virtual void on_thread_detach(JavaThread* thread); |
77 |
81 |
78 static SATBMarkQueueSet& satb_mark_queue_set() { |
82 static G1SATBMarkQueueSet& satb_mark_queue_set() { |
79 return _satb_mark_queue_set; |
83 return g1_barrier_set()->_satb_mark_queue_set; |
80 } |
84 } |
81 |
85 |
82 static DirtyCardQueueSet& dirty_card_queue_set() { |
86 static DirtyCardQueueSet& dirty_card_queue_set() { |
83 return _dirty_card_queue_set; |
87 return g1_barrier_set()->_dirty_card_queue_set; |
84 } |
88 } |
85 |
89 |
86 // Callbacks for runtime accesses. |
90 // Callbacks for runtime accesses. |
87 template <DecoratorSet decorators, typename BarrierSetT = G1BarrierSet> |
91 template <DecoratorSet decorators, typename BarrierSetT = G1BarrierSet> |
88 class AccessBarrier: public ModRefBarrierSet::AccessBarrier<decorators, BarrierSetT> { |
92 class AccessBarrier: public ModRefBarrierSet::AccessBarrier<decorators, BarrierSetT> { |