src/hotspot/share/gc/g1/g1BarrierSet.hpp
changeset 51390 135285dfc551
parent 51368 adcb0bb3d1e9
child 52582 6df094be7f58
equal deleted inserted replaced
51389:ae001a1deb74 51390:135285dfc551
    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> {