< prev index next >

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

Print this page
rev 56194 : imported patch shenandoah


  58     } else {
  59       _heap->maybe_update_with_forwarded(p);
  60     }
  61   }
  62 public:
  63   ShenandoahUpdateRefsForOopClosure() : _heap(ShenandoahHeap::heap()), _bs(ShenandoahBarrierSet::barrier_set()) {
  64     assert(UseShenandoahGC && ShenandoahCloneBarrier, "should be enabled");
  65   }
  66 
  67   virtual void do_oop(oop* p)       { do_oop_work(p); }
  68   virtual void do_oop(narrowOop* p) { do_oop_work(p); }
  69 };
  70 
  71 ShenandoahBarrierSet::ShenandoahBarrierSet(ShenandoahHeap* heap) :
  72   BarrierSet(make_barrier_set_assembler<ShenandoahBarrierSetAssembler>(),
  73              make_barrier_set_c1<ShenandoahBarrierSetC1>(),
  74              make_barrier_set_c2<ShenandoahBarrierSetC2>(),
  75              NULL /* barrier_set_nmethod */,
  76              BarrierSet::FakeRtti(BarrierSet::ShenandoahBarrierSet)),
  77   _heap(heap),
  78   _satb_mark_queue_set()

  79 {
  80 }
  81 
  82 ShenandoahBarrierSetAssembler* ShenandoahBarrierSet::assembler() {
  83   BarrierSetAssembler* const bsa = BarrierSet::barrier_set()->barrier_set_assembler();
  84   return reinterpret_cast<ShenandoahBarrierSetAssembler*>(bsa);
  85 }
  86 
  87 void ShenandoahBarrierSet::print_on(outputStream* st) const {
  88   st->print("ShenandoahBarrierSet");
  89 }
  90 
  91 bool ShenandoahBarrierSet::is_a(BarrierSet::Name bsn) {
  92   return bsn == BarrierSet::ShenandoahBarrierSet;
  93 }
  94 
  95 bool ShenandoahBarrierSet::is_aligned(HeapWord* hw) {
  96   return true;
  97 }
  98 




  58     } else {
  59       _heap->maybe_update_with_forwarded(p);
  60     }
  61   }
  62 public:
  63   ShenandoahUpdateRefsForOopClosure() : _heap(ShenandoahHeap::heap()), _bs(ShenandoahBarrierSet::barrier_set()) {
  64     assert(UseShenandoahGC && ShenandoahCloneBarrier, "should be enabled");
  65   }
  66 
  67   virtual void do_oop(oop* p)       { do_oop_work(p); }
  68   virtual void do_oop(narrowOop* p) { do_oop_work(p); }
  69 };
  70 
  71 ShenandoahBarrierSet::ShenandoahBarrierSet(ShenandoahHeap* heap) :
  72   BarrierSet(make_barrier_set_assembler<ShenandoahBarrierSetAssembler>(),
  73              make_barrier_set_c1<ShenandoahBarrierSetC1>(),
  74              make_barrier_set_c2<ShenandoahBarrierSetC2>(),
  75              NULL /* barrier_set_nmethod */,
  76              BarrierSet::FakeRtti(BarrierSet::ShenandoahBarrierSet)),
  77   _heap(heap),
  78   _satb_mark_queue_buffer_allocator("SATB Buffer Allocator", ShenandoahSATBBufferSize),
  79   _satb_mark_queue_set(&_satb_mark_queue_buffer_allocator)
  80 {
  81 }
  82 
  83 ShenandoahBarrierSetAssembler* ShenandoahBarrierSet::assembler() {
  84   BarrierSetAssembler* const bsa = BarrierSet::barrier_set()->barrier_set_assembler();
  85   return reinterpret_cast<ShenandoahBarrierSetAssembler*>(bsa);
  86 }
  87 
  88 void ShenandoahBarrierSet::print_on(outputStream* st) const {
  89   st->print("ShenandoahBarrierSet");
  90 }
  91 
  92 bool ShenandoahBarrierSet::is_a(BarrierSet::Name bsn) {
  93   return bsn == BarrierSet::ShenandoahBarrierSet;
  94 }
  95 
  96 bool ShenandoahBarrierSet::is_aligned(HeapWord* hw) {
  97   return true;
  98 }
  99 


< prev index next >