< prev index next >

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

Print this page
rev 57734 : 8236880: Shenandoah: Move string dedup cleanup into concurrent phase

*** 31,41 **** template <uint buffer_size> class ShenandoahOopBuffer : public CHeapObj<mtGC> { private: oop _buf[buffer_size]; ! uint _index; ShenandoahOopBuffer<buffer_size>* _next; public: ShenandoahOopBuffer(); --- 31,41 ---- template <uint buffer_size> class ShenandoahOopBuffer : public CHeapObj<mtGC> { private: oop _buf[buffer_size]; ! volatile uint _index; ShenandoahOopBuffer<buffer_size>* _next; public: ShenandoahOopBuffer();
*** 51,60 **** --- 51,64 ---- void set_next(ShenandoahOopBuffer<buffer_size>* next); ShenandoahOopBuffer<buffer_size>* next() const; void unlink_or_oops_do(StringDedupUnlinkOrOopsDoClosure* cl); void oops_do(OopClosure* cl); + + private: + uint index_acquire() const; + void set_index_release(uint index); }; typedef ShenandoahOopBuffer<64> ShenandoahQueueBuffer; // Muti-producer and single consumer queue set
< prev index next >