Home / Class/ UnsafeReferenceCountUpdater Class — netty Architecture

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);
    }
}

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