// 
// Decompiled by Procyon v0.6.0
// 

package io.netty.util.internal.shaded.org.jctools.queues.atomic.unpadded;

import java.util.concurrent.atomic.AtomicLongFieldUpdater;

abstract class MpscAtomicUnpaddedArrayQueueProducerIndexField<E> extends MpscAtomicUnpaddedArrayQueueL1Pad<E>
{
    private static final AtomicLongFieldUpdater<MpscAtomicUnpaddedArrayQueueProducerIndexField> P_INDEX_UPDATER;
    private volatile long producerIndex;
    
    MpscAtomicUnpaddedArrayQueueProducerIndexField(final int capacity) {
        super(capacity);
    }
    
    @Override
    public final long lvProducerIndex() {
        return this.producerIndex;
    }
    
    final boolean casProducerIndex(final long expect, final long newValue) {
        return MpscAtomicUnpaddedArrayQueueProducerIndexField.P_INDEX_UPDATER.compareAndSet(this, expect, newValue);
    }
    
    static {
        P_INDEX_UPDATER = AtomicLongFieldUpdater.newUpdater(MpscAtomicUnpaddedArrayQueueProducerIndexField.class, "producerIndex");
    }
}
