Norman Maurer
80d30c3dd8
Small code improvements
2013-08-26 07:52:47 +02:00
Norman Maurer
77d4222db5
[ #1777 ] Use correct Thread when close per channel
2013-08-25 21:22:53 +02:00
Norman Maurer
f76c01c3aa
[ #1782 ] Fix IndexOutOfBoundException with direct buffer and gathering writes
2013-08-24 18:16:05 +02:00
Trustin Lee
7aefd0cbdb
Make AbstractBootstrap public
...
.. to work around the issue with JDK reflection described here:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4283544
Fixes #1780
2013-08-24 17:20:53 +09:00
Norman Maurer
9ca20b73d3
Add testcase to show channelRegistered is called
2013-08-23 17:17:28 +02:00
bgallagher
51fa795819
fix race condition in test
2013-08-23 16:20:02 +02:00
Norman Maurer
206dc2a391
[ #1772 ] Make sure ChannelOutboundBuffer.recycle() does also reset unflushed, flushed and tail.
...
This fix a IndexOutOfBoundsException which as triggered if recycle() did cut down the buffer[] to the initial size.
2013-08-23 09:01:16 +02:00
Norman Maurer
9fd35d09a2
[ #1770 ] Fix NPE which was thrown if connection timeout was disabled and the connect did not finish directly when using NIO
2013-08-22 12:38:56 +02:00
bgallagher
6a2f340ec0
trim buffers before recycling
2013-08-21 20:28:54 +02:00
bgallagher
fb619f2394
fix writability callback
2013-08-21 16:39:50 +02:00
Norman Maurer
217b8e255c
[ #1763 ] Fill ChannelOutboundBuffer.nioBuffers with null on close to allow the content to be GC'ed
2013-08-20 21:15:05 +02:00
Trustin Lee
15cfa47ad9
Fix checkstyle
2013-08-20 14:40:28 +09:00
Trustin Lee
caf91b9c06
Fix IllegalStateException triggered while shutting down ThreadPerChannelEventLoopGroup
...
- Fix #1718
- Add the test case contributed by @mkw
2013-08-20 14:37:57 +09:00
bgallagher
a383988cdb
add struct to replace parallel arrays consolidate flushed & unflushed buffers
2013-08-18 19:19:57 +02:00
bgallagher
06e250e493
remove unused initialCapacity
2013-08-17 14:10:33 +02:00
bgallagher
9f88552f12
remove some dead code
2013-08-10 20:46:48 +02:00
Norman Maurer
280afda013
[ #1715 ] Remove extra call socket.configureBlocking(false)
2013-08-10 20:33:19 +02:00
bgallagher
59c2fd8813
[ #1723 ] invoke close in eventloop
2013-08-10 08:19:16 +02:00
Norman Maurer
9d8c4ded50
Move method in correct scope
2013-08-09 13:30:04 +02:00
Norman Maurer
4d0621855a
Remove unused package private method and so remove some complexity
2013-08-09 11:44:41 +02:00
Norman Maurer
b54937ab50
[ #1711 ] Allow to use ChannelOption for set / get MessageSizeEstimator
2013-08-08 20:37:35 +02:00
Norman Maurer
f40a3f34b1
[ #1692 ] Allow to set WRITE_BUFFER_HIGH_WATER_MARK and WRITE_BUFFER_LOW_WATER_MARK via ChannelOption
2013-08-08 20:30:01 +02:00
Norman Maurer
1d3560e389
[maven-release-plugin] prepare for next development iteration
2013-08-08 13:53:28 +02:00
Norman Maurer
8e97e6c461
[maven-release-plugin] prepare release netty-4.0.7.Final
2013-08-08 13:53:19 +02:00
Norman Maurer
fc6213604d
Make sure ChannelOutboundBuffer not throw NPE during increment/decrement pending writes
2013-08-08 13:42:25 +02:00
Norman Maurer
b934b6009c
Share some code, related to [ #1707 ]]
2013-08-07 20:28:33 +02:00
Norman Maurer
5ef30b6d8b
[ #1707 ] More efficient implementation of ChannelHandlerContext.writeAndFlush(..)
2013-08-07 20:15:10 +02:00
Norman Maurer
5b6e762bf4
Allow to have the Channel GC'ed ASAP
2013-08-07 10:32:03 +02:00
Norman Maurer
48a7a21541
Correctly update Channel.isWritable() when the write happens from outside the EventLoop in a fast fashion. Fixes [ #1697 ]
...
Introduce a new interface called MessageSizeEstimator. This can be specific per Channel (via ChannelConfig). The MessageSizeEstimator will be used to estimate for a message that should be written. The default implementation handles ByteBuf, ByteBufHolder and FileRegion. A user is free to plug-in his/her own implementation for different behaviour.
2013-08-07 10:10:43 +02:00
Norman Maurer
de44917e62
Use recyclable write task to reduce GC pressure
2013-08-05 14:59:58 +02:00
Trustin Lee
17b91f416d
Remove an irrelevant comment
...
.. because firedChannelActive is gone long ago
2013-08-05 16:50:25 +09:00
Norman Maurer
3f2000fa3a
[maven-release-plugin] prepare for next development iteration
2013-08-01 10:59:55 +02:00
Norman Maurer
3f70d5caa4
[maven-release-plugin] prepare release netty-4.0.6.Final
2013-08-01 10:59:46 +02:00
Norman Maurer
a06295fe0a
Correctly fix problem in ByteToMessageDecoder and ReplayingDecoder which could let to have a released buffer passed to the decode methods.
...
This fixes #1664 and revert also the original commit which was meant to fix it 3b1881b523
. The problem with the original commit was that it could delay handlerRemove(..) calls and so mess up the order or forward bytes to late.
2013-08-01 09:54:07 +02:00
Norman Maurer
e3410680de
[maven-release-plugin] prepare for next development iteration
2013-07-31 20:08:14 +02:00
Norman Maurer
0e124583d6
[maven-release-plugin] prepare release netty-4.0.5.Final
2013-07-31 20:08:05 +02:00
Trustin Lee
81de2275e4
Remove unnecessary traversal of pipeline which occurs when a Channel is closed
...
- Remove unnecessary ascending traversal of pipeline in DefaultChannelHandlerContext.freeInbound()
- Move DefaultChannelHandlerContext.teardownAll() to DefaultChannelPipeline
2013-07-31 20:45:37 +09:00
Trustin Lee
3b1881b523
Make sure ChannelHandler.handlerRemoved() is invoked while handler methods are not running
...
- Fixes #1664
2013-07-31 20:35:51 +09:00
Norman Maurer
3049f5ddc4
Fix checkstyle
2013-07-31 12:21:50 +02:00
Trustin Lee
c79a3cdefe
Fix a bug in NioSocketChannel.doWrite() where flush() triggered from a ChannelFutureListener is ignored
...
- Fixes #1679
2013-07-31 19:13:45 +09:00
Norman Maurer
ca29f1a37d
[ #1683 ] Mark unused ChannelOption @deprecated, to prepare for removal in 4.1.0.Final
2013-07-31 10:50:39 +02:00
Trustin Lee
e81368af06
Simplify handler invocations in DefaultChannelHandlerContext
...
- Sometimes we delegated executor.inEventLoop() to the next context and sometimes we did not. Now we always check inEventLoop() before delegating.
2013-07-31 16:34:32 +09:00
Norman Maurer
e09aea5902
Rename methods of EmbeddedChannel and mark old ones as @deprecated
2013-07-31 16:04:08 +09:00
Jeff Pinner
3922c518cd
Clean up AbstractUnsafe#bind and AbstractUnsafe#disconnect.
2013-07-29 06:54:42 +02:00
Jeff Pinner
bf2430d255
Change AbstractChannel#doRegister return type from Runnable to void.
2013-07-27 20:22:02 +02:00
Jeff Pinner
ca59c1201e
Change AbstractChannel#doDeregister return type from Runnable to void.
2013-07-26 22:21:41 +02:00
Norman Maurer
15279b2525
[ #1654 ] Notify close future after the close was complete
2013-07-26 14:21:11 +02:00
Norman Maurer
cffbba94ee
[ #1654 ] Remove AbstractChannel.doPreClose() and notify close future on register failure. Based on patch of @jpinner
2013-07-26 14:10:31 +02:00
Norman Maurer
5f363e8ade
Revert "remove AbstractChannel#doPreClose"
...
This reverts commit 241f856cc7
.
2013-07-26 11:23:11 +02:00
Jeff Pinner
241f856cc7
remove AbstractChannel#doPreClose
2013-07-26 10:12:01 +02:00
Norman Maurer
fabefba791
[ #1650 ] Make it possible to override isSharable() to simplify things for clojure users
2013-07-25 20:24:27 +02:00
Norman Maurer
6ff87cc20d
Small optimitation to limit volatile reads
2013-07-25 09:28:54 +02:00
Trustin Lee
5e4169802f
Fix potential reentrance issue in ChannelOutboundBuffer
2013-07-24 11:26:03 +09:00
Norman Maurer
0bc7d3f5d1
[maven-release-plugin] prepare for next development iteration
2013-07-23 10:04:23 +02:00
Norman Maurer
ca00182797
[maven-release-plugin] prepare release netty-4.0.4.Final
2013-07-23 10:04:14 +02:00
Norman Maurer
0b17586731
[ #1623 ] Fix javadocs for ChannelGroup
2013-07-23 09:03:42 +02:00
Trustin Lee
7903697c36
Remove Arrays.fill(..., null)
...
.. because we can just set each element to null while looping
2013-07-23 15:09:14 +09:00
Trustin Lee
a89b17fa94
Merge ChannelOutboundBuffer.failUnflushed() and recycle() into a single method and make sure it is run later on reentrance
...
- Previously, failUnflushed() did not run when inFail is true, which made unflushed writes are not released on reentrance. This has been fixed by this commit.
- Also, AbstractUnsafe.outboundBuffer is set to null as early as possible to remove the chance of any write attempts made after the closure.
2013-07-23 14:34:10 +09:00
Trustin Lee
d4aa5b53d6
Simplify the validation logic proposed in 25f96b1644
2013-07-23 13:48:22 +09:00
kerr
ada07cb9e0
Fix types in javadocs
2013-07-22 19:14:36 +02:00
Norman Maurer
25f96b1644
[ #1606 ] Reduce overhead during writes because of ChannelPromise validation
2013-07-22 11:28:02 +02:00
Norman Maurer
81612f8e9b
[ #1624 ] Fix resource leak when writing to a closed / not-open channel
2013-07-22 10:59:06 +02:00
Norman Maurer
0f6cc0cc7b
[ #1630 ] Fix re-entrance bug in ChannelOutboundBuffer.remove(...)
2013-07-22 10:44:33 +02:00
tsingxu
125070958d
Fix up ChannelPipeline javadocs by add lost "don't "
2013-07-22 07:14:42 +02:00
Norman Maurer
7f86550ef8
[ #1619 ] Fix bug in ChannelOutboundBuffer which could lead to invalid write order when fireChannelWritabilityChanged() write another message
2013-07-20 10:03:53 +02:00
Norman Maurer
60529ac3ee
Fix checkstyle
2013-07-20 08:09:08 +02:00
Jeff Pinner
6c9c151d66
minor documentation cleanup
2013-07-20 08:01:14 +02:00
Norman Maurer
4d69848aec
Fix broken javadocs
2013-07-19 07:40:12 +02:00
Trustin Lee
19c92ceb59
Separate 'progress total' and 'pending number of bytes'
...
- Reverted the recent changes in AbstractChannel.calculateMessageSize()
2013-07-19 14:09:08 +09:00
Trustin Lee
762adfcb69
Update HttpStaticFileServer example / Fix bugs related with progress notification
...
- Fix a bug in DefaultProgressivePromise.tryProgress() where the notification is dropped
- Fix a bug in AbstractChannel.calculateMessageSize() where FileRegion is not counted
- HttpStaticFileServer example now uses zero copy file transfer if possible.
2013-07-19 13:21:32 +09:00
Trustin Lee
f96a8e5951
Implement ProgressivePromise notification in NIO byte channels and ChunkedWriteHandler
...
- Refine the contract of GenericProgressiveFutureListener.
- Negative 'total' now means 'unknown', which is useful for ChunkedWriteHandler.
2013-07-19 12:53:23 +09:00
Trustin Lee
0653efcd75
Even better promise validation messages
2013-07-19 09:38:25 +09:00
Trustin Lee
d5e202d755
Better promise validation messages
2013-07-19 09:37:56 +09:00
Trustin Lee
faf8b76b5a
Fix a potential bug where AbstractUnsafe.flush0() fails to clear the inFlush0 flag
...
- Fixes #1609
2013-07-19 08:56:17 +09:00
Trustin Lee
8178322c5c
A little bit of Javadoc for ChannelOutboundBuffer
2013-07-19 01:17:00 +09:00
Trustin Lee
fef838f197
Make sure channelInactive() and channelDeregistered() are triggered even if outboundBuffer.recycle() fails
2013-07-19 01:09:19 +09:00
Trustin Lee
8828d5327a
Move inFlush0 and outboundBuffer in AbstractChannel to AbstractUnsafe
...
.. because they are accessed by AbstractUnsafe much more often.
2013-07-18 23:33:39 +09:00
Trustin Lee
5e5df6bd09
Fix NPE
2013-07-18 23:29:13 +09:00
Trustin Lee
4cd7e62555
Make ChannelOutboundBuffer recycled
2013-07-18 23:26:45 +09:00
Trustin Lee
46ea0d4e7b
Implement gathering writes in NioSocketChannel
...
- Add some support methods in ChannelOutputBuffer
2013-07-18 23:14:39 +09:00
Trustin Lee
4f0a952241
Checkstyle
2013-07-18 21:01:01 +09:00
Trustin Lee
bcef796dc7
Rewrite ChannelOutboundBuffer
...
- Merge MessageList into ChannelOutboundBuffer
- Make ChannelOutboundBuffer a queue-like data structure so that it is nearly impossible to leak a message
- Make ChannelOutboundBuffer public so that AbstractChannel can expose it to its subclasses.
- TODO: Re-enable gathering write in NioSocketChannel
2013-07-18 20:59:14 +09:00
Trustin Lee
b130ee6a6c
[maven-release-plugin] prepare for next development iteration
2013-07-18 11:17:42 +09:00
Trustin Lee
10d395e829
[maven-release-plugin] prepare release netty-4.0.3.Final
2013-07-18 11:17:31 +09:00
Trustin Lee
568166d554
Cleanup
2013-07-18 10:29:34 +09:00
Trustin Lee
473af5c98e
Fix checkstyle
2013-07-18 10:25:16 +09:00
Trustin Lee
e28594952b
Make the cleanup logic in ChannelOutboundBuffer more robust
...
- Fixes #1601
2013-07-18 10:23:26 +09:00
Trustin Lee
9c8d980a74
Fix a bug where a ChannelFutureListener can allow Unsafe.close() and Unsafe.flush() to overlap and reenter from flush() to close().
...
- Fixes #1600
2013-07-18 10:14:55 +09:00
Norman Maurer
fc7c950b08
[maven-release-plugin] prepare for next development iteration
2013-07-17 15:58:36 +02:00
Norman Maurer
bbbf72359e
[maven-release-plugin] prepare release netty-4.0.2.Final
2013-07-17 15:58:28 +02:00
Trustin Lee
88cbdb50d2
Fail unflushed writes with ClosedChannelException
...
... instead of cryptic exception message.
2013-07-17 21:25:51 +09:00
Trustin Lee
5f235eafc3
Fix checkstyle
2013-07-17 21:17:52 +09:00
Trustin Lee
31ecd17212
Fix test failure
2013-07-17 21:16:52 +09:00
Trustin Lee
cc9b9567b9
Make sure all write attempts made after a channel is closed are marked as failure
2013-07-17 21:14:07 +09:00
Trustin Lee
a8d67b0282
Fix data structure corruption and resource leak in ChannelOutboundBuffer
2013-07-17 21:02:56 +09:00
Trustin Lee
dcf7896172
Do not close ServerChannel on IOException while accepting an incoming connection
...
.. so that we can recover from 'too many open files'
- Fixes #1578
2013-07-16 18:39:29 +09:00
Trustin Lee
57eb531eb8
[maven-release-plugin] prepare for next development iteration
2013-07-16 17:16:10 +09:00
Trustin Lee
76cefcc421
[maven-release-plugin] prepare release netty-4.0.1.Final
2013-07-16 17:15:54 +09:00
Norman Maurer
5297eba280
[maven-release-plugin] prepare for next development iteration
2013-07-15 15:48:15 +02:00
Norman Maurer
c5d8af446a
[maven-release-plugin] prepare release netty-4.0.0.Final
2013-07-15 15:48:05 +02:00