Package io.netty.util.internal
Class ReferenceCountUpdater<T extends ReferenceCounted>
- java.lang.Object
-
- io.netty.util.internal.ReferenceCountUpdater<T>
-
- Direct Known Subclasses:
AtomicReferenceCountUpdater
,UnsafeReferenceCountUpdater
,VarHandleReferenceCountUpdater
public abstract class ReferenceCountUpdater<T extends ReferenceCounted> extends java.lang.Object
Common logic forReferenceCounted
implementations
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ReferenceCountUpdater.UpdaterType
-
Constructor Summary
Constructors Modifier Constructor Description protected
ReferenceCountUpdater()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract boolean
casRawRefCnt(T refCnt, int expected, int value)
protected abstract int
getAcquireRawRefCnt(T refCnt)
protected abstract int
getAndAddRawRefCnt(T refCntObj, int increment)
protected abstract int
getRawRefCnt(T refCnt)
static long
getUnsafeOffset(java.lang.Class<? extends ReferenceCounted> clz, java.lang.String fieldName)
int
initialValue()
boolean
isLiveNonVolatile(T instance)
int
refCnt(T instance)
boolean
release(T instance)
boolean
release(T instance, int decrement)
void
resetRefCnt(T instance)
Resets the reference count to 1T
retain(T instance)
T
retain(T instance, int increment)
protected abstract void
safeInitializeRawRefCnt(T refCntObj, int value)
void
setInitialValue(T instance)
void
setRefCnt(T instance, int refCnt)
An unsafe operation that sets the reference count directlyprotected abstract void
setReleaseRawRefCnt(T refCnt, int value)
static <T extends ReferenceCounted>
ReferenceCountUpdater.UpdaterTypeupdaterTypeOf(java.lang.Class<T> clz, java.lang.String fieldName)
-
-
-
Method Detail
-
safeInitializeRawRefCnt
protected abstract void safeInitializeRawRefCnt(T refCntObj, int value)
-
getAndAddRawRefCnt
protected abstract int getAndAddRawRefCnt(T refCntObj, int increment)
-
getRawRefCnt
protected abstract int getRawRefCnt(T refCnt)
-
getAcquireRawRefCnt
protected abstract int getAcquireRawRefCnt(T refCnt)
-
setReleaseRawRefCnt
protected abstract void setReleaseRawRefCnt(T refCnt, int value)
-
casRawRefCnt
protected abstract boolean casRawRefCnt(T refCnt, int expected, int value)
-
initialValue
public final int initialValue()
-
setInitialValue
public final void setInitialValue(T instance)
-
refCnt
public final int refCnt(T instance)
-
isLiveNonVolatile
public final boolean isLiveNonVolatile(T instance)
-
setRefCnt
public final void setRefCnt(T instance, int refCnt)
An unsafe operation that sets the reference count directly
-
resetRefCnt
public final void resetRefCnt(T instance)
Resets the reference count to 1
-
release
public final boolean release(T instance)
-
release
public final boolean release(T instance, int decrement)
-
updaterTypeOf
public static <T extends ReferenceCounted> ReferenceCountUpdater.UpdaterType updaterTypeOf(java.lang.Class<T> clz, java.lang.String fieldName)
-
getUnsafeOffset
public static long getUnsafeOffset(java.lang.Class<? extends ReferenceCounted> clz, java.lang.String fieldName)
-
-