Home / Function/ doReleaseChannel() — netty Function Reference

doReleaseChannel() — netty Function Reference

Architecture documentation for the doReleaseChannel() function in SimpleChannelPool.java from the netty codebase.

Function java Buffer Telemetry calls 3 called by 1

Entity Profile

Dependency Diagram

graph TD
  edd5c18f_fdf6_5dbc_4d9f_3143ea1106e2["doReleaseChannel()"]
  e441b5b0_fbd9_848c_9624_3e21f7c56e58["SimpleChannelPool"]
  edd5c18f_fdf6_5dbc_4d9f_3143ea1106e2 -->|defined in| e441b5b0_fbd9_848c_9624_3e21f7c56e58
  f7de2118_7e0e_1138_b047_455dbc2dd98f["release()"]
  f7de2118_7e0e_1138_b047_455dbc2dd98f -->|calls| edd5c18f_fdf6_5dbc_4d9f_3143ea1106e2
  289c2758_bf72_3fdf_f9ce_fa04213a1c12["closeAndFail()"]
  edd5c18f_fdf6_5dbc_4d9f_3143ea1106e2 -->|calls| 289c2758_bf72_3fdf_f9ce_fa04213a1c12
  372c81d4_671e_eced_ddf9_8148d4635f01["doHealthCheckOnRelease()"]
  edd5c18f_fdf6_5dbc_4d9f_3143ea1106e2 -->|calls| 372c81d4_671e_eced_ddf9_8148d4635f01
  2b1e97d7_871a_5c1e_15d6_5e3d8b4d2fb1["releaseAndOffer()"]
  edd5c18f_fdf6_5dbc_4d9f_3143ea1106e2 -->|calls| 2b1e97d7_871a_5c1e_15d6_5e3d8b4d2fb1
  style edd5c18f_fdf6_5dbc_4d9f_3143ea1106e2 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

transport/src/main/java/io/netty/channel/pool/SimpleChannelPool.java lines 287–307

    private void doReleaseChannel(Channel channel, Promise<Void> promise) {
        try {
            assert channel.eventLoop().inEventLoop();
            // Remove the POOL_KEY attribute from the Channel and check if it was acquired from this pool, if not fail.
            if (channel.attr(POOL_KEY).getAndSet(null) != this) {
                closeAndFail(channel,
                             // Better include a stacktrace here as this is an user error.
                             new IllegalArgumentException(
                                     "Channel " + channel + " was not acquired from this ChannelPool"),
                             promise);
            } else {
                if (releaseHealthCheck) {
                    doHealthCheckOnRelease(channel, promise);
                } else {
                    releaseAndOffer(channel, promise);
                }
            }
        } catch (Throwable cause) {
            closeAndFail(channel, cause, promise);
        }
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does doReleaseChannel() do?
doReleaseChannel() is a function in the netty codebase, defined in transport/src/main/java/io/netty/channel/pool/SimpleChannelPool.java.
Where is doReleaseChannel() defined?
doReleaseChannel() is defined in transport/src/main/java/io/netty/channel/pool/SimpleChannelPool.java at line 287.
What does doReleaseChannel() call?
doReleaseChannel() calls 3 function(s): closeAndFail, doHealthCheckOnRelease, releaseAndOffer.
What calls doReleaseChannel()?
doReleaseChannel() is called by 1 function(s): release.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free