From 2040b0784990cad529a8b9c5d3878d483348eb16 Mon Sep 17 00:00:00 2001 From: Trustin Lee Date: Thu, 16 May 2013 19:41:02 +0900 Subject: [PATCH] Free the cleared buffer as early as possible / Better naming --- .../channel/DefaultChannelHandlerContext.java | 66 +++++++++---------- .../netty/channel/DefaultChannelPipeline.java | 2 +- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java b/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java index 31f4d9bbbf..ac89678fe9 100755 --- a/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java +++ b/transport/src/main/java/io/netty/channel/DefaultChannelHandlerContext.java @@ -198,12 +198,12 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements outMsgBuf = null; } - void forwardBufferContentAndRemove( + void forwardBufferContentAndFree( final DefaultChannelHandlerContext forwardPrev, final DefaultChannelHandlerContext forwardNext) { + boolean flush = false; + boolean inboundBufferUpdated = false; try { - boolean flush = false; - boolean inboundBufferUpdated = false; if (!isOutboundFreed()) { if (hasOutboundByteBuffer() && outboundByteBuffer().isReadable()) { ByteBuf forwardPrevBuf; @@ -251,40 +251,40 @@ final class DefaultChannelHandlerContext extends DefaultAttributeMap implements } } } - - if (flush) { - EventExecutor executor = executor(); - Thread currentThread = Thread.currentThread(); - if (executor.inEventLoop(currentThread)) { - invokePrevFlush(newPromise(), currentThread, findContextOutboundInclusive(forwardPrev)); - } else { - executor.execute(new Runnable() { - @Override - public void run() { - invokePrevFlush(newPromise(), Thread.currentThread(), - findContextOutboundInclusive(forwardPrev)); - } - }); - } - } - - if (inboundBufferUpdated) { - EventExecutor executor = executor(); - if (executor.inEventLoop()) { - fireInboundBufferUpdated0(findContextInboundInclusive(forwardNext)); - } else { - executor.execute(new Runnable() { - @Override - public void run() { - fireInboundBufferUpdated0(findContextInboundInclusive(forwardNext)); - } - }); - } - } } finally { flags |= FLAG_REMOVED; freeAllIfRemoved(); } + + if (flush) { + EventExecutor executor = executor(); + Thread currentThread = Thread.currentThread(); + if (executor.inEventLoop(currentThread)) { + invokePrevFlush(newPromise(), currentThread, findContextOutboundInclusive(forwardPrev)); + } else { + executor.execute(new Runnable() { + @Override + public void run() { + invokePrevFlush(newPromise(), Thread.currentThread(), + findContextOutboundInclusive(forwardPrev)); + } + }); + } + } + + if (inboundBufferUpdated) { + EventExecutor executor = executor(); + if (executor.inEventLoop()) { + fireInboundBufferUpdated0(findContextInboundInclusive(forwardNext)); + } else { + executor.execute(new Runnable() { + @Override + public void run() { + fireInboundBufferUpdated0(findContextInboundInclusive(forwardNext)); + } + }); + } + } } private static DefaultChannelHandlerContext findContextOutboundInclusive(DefaultChannelHandlerContext ctx) { diff --git a/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java b/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java index aff6ab7cb7..60d9bc8dda 100755 --- a/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java +++ b/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java @@ -541,7 +541,7 @@ final class DefaultChannelPipeline implements ChannelPipeline { // Finish removal by forwarding buffer content and freeing the buffers. if (forward) { try { - ctx.forwardBufferContentAndRemove(ctxPrev, ctxNext); + ctx.forwardBufferContentAndFree(ctxPrev, ctxNext); } catch (Throwable t) { fireExceptionCaught(new ChannelPipelineException( "failed to forward buffer content of " + ctx.handler().getClass().getName(), t));