Package io.netty.util.internal
Class ReferenceCountUpdater<T extends ReferenceCounted>
java.lang.Object
io.netty.util.internal.ReferenceCountUpdater<T>
Common logic for
ReferenceCounted
implementations-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic long
getUnsafeOffset
(Class<? extends ReferenceCounted> clz, String fieldName) final int
final boolean
isLiveNonVolatile
(T instance) private boolean
nonFinalRelease0
(T instance, int decrement, int rawCnt, int realCnt) private int
nonVolatileRawCnt
(T instance) private static int
realRefCnt
(int rawCnt) final int
final boolean
final boolean
final void
resetRefCnt
(T instance) Resets the reference count to 1final T
final T
private T
private boolean
retryRelease0
(T instance, int decrement) void
setInitialValue
(T instance) final void
An unsafe operation that sets the reference count directlyprivate static int
toLiveRealRefCnt
(int rawCnt, int decrement) LikerealRefCnt(int)
but throws if refCnt == 0private boolean
tryFinalRelease0
(T instance, int expectRawCnt) protected abstract long
protected abstract AtomicIntegerFieldUpdater
<T> updater()
-
Constructor Details
-
ReferenceCountUpdater
protected ReferenceCountUpdater()
-
-
Method Details
-
getUnsafeOffset
-
updater
-
unsafeOffset
protected abstract long unsafeOffset() -
initialValue
public final int initialValue() -
setInitialValue
-
realRefCnt
private static int realRefCnt(int rawCnt) -
toLiveRealRefCnt
private static int toLiveRealRefCnt(int rawCnt, int decrement) LikerealRefCnt(int)
but throws if refCnt == 0 -
nonVolatileRawCnt
-
refCnt
-
isLiveNonVolatile
-
setRefCnt
An unsafe operation that sets the reference count directly -
resetRefCnt
Resets the reference count to 1 -
retain
-
retain
-
retain0
-
release
-
release
-
tryFinalRelease0
-
nonFinalRelease0
-
retryRelease0
-