Home / Function/ handlerRemoved() — netty Function Reference

handlerRemoved() — netty Function Reference

Architecture documentation for the handlerRemoved() function in GlobalTrafficShapingHandler.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  a5d9dd40_8a6e_6f8f_d2d0_0fbf517aed51["handlerRemoved()"]
  25ae99c4_4bb1_9893_ce25_fa54995d6af1["GlobalTrafficShapingHandler"]
  a5d9dd40_8a6e_6f8f_d2d0_0fbf517aed51 -->|defined in| 25ae99c4_4bb1_9893_ce25_fa54995d6af1
  3e8f5c2d_c798_2f7e_047c_8a550e9567de["release()"]
  a5d9dd40_8a6e_6f8f_d2d0_0fbf517aed51 -->|calls| 3e8f5c2d_c798_2f7e_047c_8a550e9567de
  style a5d9dd40_8a6e_6f8f_d2d0_0fbf517aed51 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/traffic/GlobalTrafficShapingHandler.java lines 263–293

    @Override
    public void handlerRemoved(ChannelHandlerContext ctx) throws Exception {
        Channel channel = ctx.channel();
        Integer key = channel.hashCode();
        PerChannel perChannel = channelQueues.remove(key);
        if (perChannel != null) {
            // write operations need synchronization
            synchronized (perChannel) {
                if (channel.isActive()) {
                    for (ToSend toSend : perChannel.messagesQueue) {
                        long size = calculateSize(toSend.toSend);
                        trafficCounter.bytesRealWriteFlowControl(size);
                        perChannel.queueSize -= size;
                        queuesSize.addAndGet(-size);
                        ctx.write(toSend.toSend, toSend.promise);
                    }
                } else {
                    queuesSize.addAndGet(-perChannel.queueSize);
                    for (ToSend toSend : perChannel.messagesQueue) {
                        if (toSend.toSend instanceof ByteBuf) {
                            ((ByteBuf) toSend.toSend).release();
                        }
                    }
                }
                perChannel.messagesQueue.clear();
            }
        }
        releaseWriteSuspended(ctx);
        releaseReadSuspended(ctx);
        super.handlerRemoved(ctx);
    }

Domain

Subdomains

Calls

Frequently Asked Questions

What does handlerRemoved() do?
handlerRemoved() is a function in the netty codebase, defined in handler/src/main/java/io/netty/handler/traffic/GlobalTrafficShapingHandler.java.
Where is handlerRemoved() defined?
handlerRemoved() is defined in handler/src/main/java/io/netty/handler/traffic/GlobalTrafficShapingHandler.java at line 263.
What does handlerRemoved() call?
handlerRemoved() calls 1 function(s): release.

Analyze Your Own Codebase

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

Try Supermodel Free