< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahBarrierSet.hpp

Print this page

 33 
 34 class ShenandoahBarrierSet: public BarrierSet {
 35 private:
 36   ShenandoahHeap* const _heap;
 37   BufferNode::Allocator _satb_mark_queue_buffer_allocator;
 38   ShenandoahSATBMarkQueueSet _satb_mark_queue_set;
 39 
 40 public:
 41   ShenandoahBarrierSet(ShenandoahHeap* heap);
 42 
 43   static ShenandoahBarrierSetAssembler* assembler();
 44 
 45   inline static ShenandoahBarrierSet* barrier_set() {
 46     return barrier_set_cast<ShenandoahBarrierSet>(BarrierSet::barrier_set());
 47   }
 48 
 49   static ShenandoahSATBMarkQueueSet& satb_mark_queue_set() {
 50     return barrier_set()->_satb_mark_queue_set;
 51   }
 52 



 53   static bool need_load_reference_barrier(DecoratorSet decorators, BasicType type);
 54   static bool need_keep_alive_barrier(DecoratorSet decorators, BasicType type);
 55 
 56   static bool is_strong_access(DecoratorSet decorators) {
 57     return (decorators & (ON_WEAK_OOP_REF | ON_PHANTOM_OOP_REF)) == 0;
 58   }
 59 
 60   static bool is_weak_access(DecoratorSet decorators) {
 61     return (decorators & ON_WEAK_OOP_REF) != 0;
 62   }
 63 
 64   static bool is_phantom_access(DecoratorSet decorators) {
 65     return (decorators & ON_PHANTOM_OOP_REF) != 0;
 66   }
 67 
 68   static bool is_native_access(DecoratorSet decorators) {
 69     return (decorators & IN_NATIVE) != 0;
 70   }
 71 
 72   void print_on(outputStream* st) const;

 33 
 34 class ShenandoahBarrierSet: public BarrierSet {
 35 private:
 36   ShenandoahHeap* const _heap;
 37   BufferNode::Allocator _satb_mark_queue_buffer_allocator;
 38   ShenandoahSATBMarkQueueSet _satb_mark_queue_set;
 39 
 40 public:
 41   ShenandoahBarrierSet(ShenandoahHeap* heap);
 42 
 43   static ShenandoahBarrierSetAssembler* assembler();
 44 
 45   inline static ShenandoahBarrierSet* barrier_set() {
 46     return barrier_set_cast<ShenandoahBarrierSet>(BarrierSet::barrier_set());
 47   }
 48 
 49   static ShenandoahSATBMarkQueueSet& satb_mark_queue_set() {
 50     return barrier_set()->_satb_mark_queue_set;
 51   }
 52 
 53   // Loom support
 54   static constexpr bool is_concurrent_gc() { return true; }
 55 
 56   static bool need_load_reference_barrier(DecoratorSet decorators, BasicType type);
 57   static bool need_keep_alive_barrier(DecoratorSet decorators, BasicType type);
 58 
 59   static bool is_strong_access(DecoratorSet decorators) {
 60     return (decorators & (ON_WEAK_OOP_REF | ON_PHANTOM_OOP_REF)) == 0;
 61   }
 62 
 63   static bool is_weak_access(DecoratorSet decorators) {
 64     return (decorators & ON_WEAK_OOP_REF) != 0;
 65   }
 66 
 67   static bool is_phantom_access(DecoratorSet decorators) {
 68     return (decorators & ON_PHANTOM_OOP_REF) != 0;
 69   }
 70 
 71   static bool is_native_access(DecoratorSet decorators) {
 72     return (decorators & IN_NATIVE) != 0;
 73   }
 74 
 75   void print_on(outputStream* st) const;
< prev index next >