package org.jctools.util; import static org.jctools.util.UnsafeAccess.UNSAFE; abstract class VolatileLongCellP0 { long p0, p1, p2, p3, p4, p5, p6; long p10, p11, p12, p13, p14, p15, p16, p17; } abstract class VolatileLongCellValue extends VolatileLongCellP0 { protected volatile long value; } public final class VolatileLongCell extends VolatileLongCellValue { long p0, p1, p2, p3, p4, p5, p6; long p10, p11, p12, p13, p14, p15, p16, p17; private final static long VALUE_OFFSET; static { try { VALUE_OFFSET = UNSAFE.objectFieldOffset(VolatileLongCellValue.class.getDeclaredField("value")); } catch (NoSuchFieldException e) { throw new RuntimeException(e); } } public VolatileLongCell() { this(0L); } public VolatileLongCell(long v) { lazySet(v); } public void lazySet(long v) { UnsafeAccess.UNSAFE.putOrderedLong(this, VALUE_OFFSET, v); } public void set(long v) { this.value = v; } public long get() { return this.value; } }