UnsafeReferenceCountUpdater Class — netty Architecture
Architecture documentation for the UnsafeReferenceCountUpdater class in UnsafeReferenceCountUpdater.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 071a7395_171e_160e_6f59_762ef8ed6dd5["UnsafeReferenceCountUpdater"] 3cdca918_16e0_d1c4_5d8f_ab140a6e3f46["UnsafeReferenceCountUpdater.java"] 071a7395_171e_160e_6f59_762ef8ed6dd5 -->|defined in| 3cdca918_16e0_d1c4_5d8f_ab140a6e3f46 c9a62c63_6a9e_8629_4596_1b67008fd7aa["UnsafeReferenceCountUpdater()"] 071a7395_171e_160e_6f59_762ef8ed6dd5 -->|method| c9a62c63_6a9e_8629_4596_1b67008fd7aa 6776f6d2_d157_5b89_2ed5_69e4a2dfbb95["refCntFieldOffset()"] 071a7395_171e_160e_6f59_762ef8ed6dd5 -->|method| 6776f6d2_d157_5b89_2ed5_69e4a2dfbb95 2ce2b44d_bf49_7123_3b9d_22a2751734ef["safeInitializeRawRefCnt()"] 071a7395_171e_160e_6f59_762ef8ed6dd5 -->|method| 2ce2b44d_bf49_7123_3b9d_22a2751734ef e26e1656_1655_13a0_7061_c6245418ca5e["getAndAddRawRefCnt()"] 071a7395_171e_160e_6f59_762ef8ed6dd5 -->|method| e26e1656_1655_13a0_7061_c6245418ca5e 053c97f9_85cd_5db0_1f10_33c9aa298b1a["getRawRefCnt()"] 071a7395_171e_160e_6f59_762ef8ed6dd5 -->|method| 053c97f9_85cd_5db0_1f10_33c9aa298b1a 734abb7e_95de_1d8c_8e63_e756294b9e66["getAcquireRawRefCnt()"] 071a7395_171e_160e_6f59_762ef8ed6dd5 -->|method| 734abb7e_95de_1d8c_8e63_e756294b9e66 ffe74472_c906_ed71_8c55_266382389c0d["setReleaseRawRefCnt()"] 071a7395_171e_160e_6f59_762ef8ed6dd5 -->|method| ffe74472_c906_ed71_8c55_266382389c0d b5c25acd_5d5e_561f_bb01_c3bd3806ae56["casRawRefCnt()"] 071a7395_171e_160e_6f59_762ef8ed6dd5 -->|method| b5c25acd_5d5e_561f_bb01_c3bd3806ae56
Relationship Graph
Source Code
common/src/main/java/io/netty/util/internal/UnsafeReferenceCountUpdater.java lines 20–56
public abstract class UnsafeReferenceCountUpdater<T extends ReferenceCounted> extends ReferenceCountUpdater<T> {
protected UnsafeReferenceCountUpdater() {
}
protected abstract long refCntFieldOffset();
@Override
protected final void safeInitializeRawRefCnt(T refCntObj, int value) {
PlatformDependent.safeConstructPutInt(refCntObj, refCntFieldOffset(), value);
}
@Override
protected final int getAndAddRawRefCnt(T refCntObj, int increment) {
return PlatformDependent.getAndAddInt(refCntObj, refCntFieldOffset(), increment);
}
@Override
protected final int getRawRefCnt(T refCnt) {
return PlatformDependent.getInt(refCnt, refCntFieldOffset());
}
@Override
protected final int getAcquireRawRefCnt(T refCnt) {
return PlatformDependent.getVolatileInt(refCnt, refCntFieldOffset());
}
@Override
protected final void setReleaseRawRefCnt(T refCnt, int value) {
PlatformDependent.putOrderedInt(refCnt, refCntFieldOffset(), value);
}
@Override
protected final boolean casRawRefCnt(T refCnt, int expected, int value) {
return PlatformDependent.compareAndSwapInt(refCnt, refCntFieldOffset(), expected, value);
}
}
Source
Frequently Asked Questions
What is the UnsafeReferenceCountUpdater class?
UnsafeReferenceCountUpdater is a class in the netty codebase, defined in common/src/main/java/io/netty/util/internal/UnsafeReferenceCountUpdater.java.
Where is UnsafeReferenceCountUpdater defined?
UnsafeReferenceCountUpdater is defined in common/src/main/java/io/netty/util/internal/UnsafeReferenceCountUpdater.java at line 20.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free