< 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 >