Trustin Lee
69e5a0eb9c
Log prematurly returning select() at DEBUG level and increase the minimum required consecutive premature returns to log
2013-03-22 12:59:47 +09:00
Trustin Lee
d525295d20
Revert NioEventLoop.hasTasks() which is not really true
2013-03-22 12:46:31 +09:00
Trustin Lee
34853e7ba0
Selector auto-rebuilder tweaks
2013-03-22 12:37:11 +09:00
Trustin Lee
f6e0df125a
Allow disabling automatic selector rebuilding by specifing non-positive threshold
2013-03-22 11:50:53 +09:00
Trustin Lee
1ab2813405
Enable automatic selector rebuilding by default
...
- Fixes #1192
- Log at WARN level for easier diagnosis
2013-03-22 11:48:41 +09:00
Trustin Lee
fa02ffddae
Remove TaskScheduler and ImmediateEventExecutor that requires TaskScheduler
...
- Related issue: #817
2013-03-22 09:06:08 +09:00
Trustin Lee
4097dee49d
Make SingleThreadEventExecutor independent from TaskScheduler
...
- Related issue: #817
2013-03-22 09:00:38 +09:00
Trustin Lee
8fb80e9179
Fix a dead lock in ServerBootstrap as described in #1175
...
- Reduce code duplication between bootstrap implementations
2013-03-21 21:34:13 +09:00
Trustin Lee
9b208028ef
Use clearer term when data is discarded by pipeline
2013-03-21 20:22:25 +09:00
Trustin Lee
a8723412dd
Fix checkstyle
2013-03-21 19:51:11 +09:00
Norman Maurer
f858a2fe62
Fix multiple calls to fireChannelActive() when using AIO
2013-03-21 11:49:58 +01:00
Trustin Lee
4fa7e85493
Make sure ChannelFuture of Bootstrap.bind() and connect() notify with the right cause when registration fails
...
- Related: #1175
2013-03-21 19:41:38 +09:00
Norman Maurer
b6dd5938ab
No need to do any deadlock check here
2013-03-21 11:24:26 +01:00
Trustin Lee
c08919d0a0
Fix the dead lock described in #1175
...
- Similar to @normanmaurer's fix in that this commit also makes Bootstrap.init(Channel) asynchronous, but it is simpler and less invasive.
- Also made sure a connection attempt failure in the local transport does not trigger an exceptionCaught event
2013-03-21 19:19:14 +09:00
Trustin Lee
bd8d53eaed
Fix checkstyle
2013-03-21 19:02:34 +09:00
Trustin Lee
2aa0bf73dc
Add a unit test that reproduces the dead lock described in #1175
...
- The offending test case is annotated with `@Ignore`
- Also fixed a bug where channel initialization failure swallows the original cause of initialization failure
2013-03-21 18:43:03 +09:00
Trustin Lee
a980638190
Ensure the best effort is made even if future listeners could not be notified / Handle registration failure in a robust manner
...
- Related: #1187
2013-03-21 17:48:10 +09:00
Trustin Lee
8b722d29a7
Add constructor parameters that do not perform type parameter auto-detection for the languages without type parameters
...
- Fixes #1177
- Add TypeParameterMatcher.get(parameterType)
- Add alternative constructors
2013-03-21 16:11:47 +09:00
Norman Maurer
2b014ce82a
[ #1183 ] Fix BlockingOperationException in ChannelGroup.close().awaitUninterruptibly()
2013-03-20 18:28:55 +01:00
Norman Maurer
ce87b627be
Let EventExecutor return our Future to allow the user to work also with FutureListener here. Also add a special ScheduledFuture that extends our Future for this purpose.
2013-03-19 10:45:42 +01:00
Michael Nitschinger
5a88227856
Transport: Clarifying the role of AbstractBootstrap#bind()
...
This small changeset clarifies the role of AbstractBootstrap#bind(),
especially when not used in a ServerBoostrap context.
2013-03-18 17:58:46 +09:00
Trustin Lee
f4c18c6e74
Fix a bug where NioEventLoop.processSelectedKeys() enters an infinite loop when too many connections are closed at once
...
- Fixes #1171
2013-03-18 15:01:19 +09:00
Jeff Pinner
7498e0f913
make deregister protected in ThreadPerChannelEventLoop
2013-03-17 20:11:33 +01:00
Trustin Lee
2a87950784
[maven-release-plugin] prepare for next development iteration
2013-03-16 18:41:36 +09:00
Trustin Lee
adfb29330b
[maven-release-plugin] prepare release netty-4.0.0.Beta3
2013-03-16 18:40:59 +09:00
ursa
835a40fa25
Port test for handler's life-cycle processing into master branch.
2013-03-14 11:10:02 +01:00
Trustin Lee
70a51bcd8d
Fix memory leak in AbstractEmbeddedChannel
...
- Allow a transport implementation to perform an arbitrary task when a channel has been deregistered completely
2013-03-14 15:51:33 +09:00
Trustin Lee
9c96791176
Move the methods that's only used by DefaultChannelPipeline to DefaultChannelPipeline
2013-03-14 15:01:35 +09:00
Trustin Lee
d55567e21b
Remove DefaultChannelHandlerContext.needsLazyBufInit which is used only by the head handler
2013-03-14 14:35:56 +09:00
Trustin Lee
f1ecb4ab1a
Remove ChannelHandlerContext.types() which is barely useful / Remove ChannelHandlerType together
2013-03-14 14:14:04 +09:00
Trustin Lee
9feb27d58c
Specify timeout on Selector.select()
2013-03-14 08:54:33 +09:00
Trustin Lee
644d5abbda
Add an empty line
2013-03-14 06:54:57 +09:00
Trustin Lee
8dcb1387e3
Add I/O ratio parameter to NioEventLoop
...
- Add SingleThreadEventExecutor.runAllTasks(timeout)
- Add NioEventLoop.ioRatio property
- Merge SelectorUtil into NioEventLoop
2013-03-14 06:49:08 +09:00
Norman Maurer
fe66f33f42
Fix issue where the bytes/messages are forwarded to the wrong handler
2013-03-12 08:37:27 +01:00
Norman Maurer
17ebbdec20
Let ChannelGroupFuture extends ChannelFuture and ChannelGroupFutureListener GenericFutureListener
2013-03-12 08:35:39 +01:00
Norman Maurer
f2a35273e6
Fix checkstype
2013-03-12 08:35:24 +01:00
Trustin Lee
397830d238
Allow SingleOutboundMessageHandler.beginFlush() to reject the flush request by returning false / Replace PartialFlushException with IncompleteFlushException which is more correct.
2013-03-12 15:20:46 +09:00
Trustin Lee
83cdbeca1d
Add ThreadPerChannelEventLoopGroup and ThreadPerChannelEventLoop to enable a user to write a new thread-per-channel transport easily
...
- Fixes #1124
2013-03-12 14:50:38 +09:00
Norman Maurer
2406a9f8b8
Use LinkedHashSet
2013-03-11 06:38:39 +01:00
Norman Maurer
806e9b1f8c
Make sure we handle outbound messages of type ByteBuf special
2013-03-11 08:59:00 +09:00
Norman Maurer
0a1bc86569
Javadocs cleanup / added
2013-03-10 21:07:19 +01:00
Norman Maurer
0504a442ae
Check for NPE and also optimze HashSet allocation
2013-03-10 21:06:59 +01:00
Norman Maurer
fcd6becad9
[ #1136 ] Fix possible IllegalBufferAccessException when remove itself from the pipeline
2013-03-08 21:55:46 +01:00
Norman Maurer
7b4c83b462
[ #1135 ] Fix endless loop which will get triggered when an exception is thrown during freeHandlerBuffersAfterRemoval
2013-03-08 21:41:59 +01:00
Norman Maurer
fd3f923b52
Allow to specify the used buffer type for ChannelInboundByteBufHandler and ChannelOutboundByteBufHandler by configuration. As default it tries to use a direct ByteBuf
2013-03-08 08:20:46 +01:00
Trustin Lee
a9a29bdf3f
Use I/O buffer whenever possible now that our direct buffers are as fast as heap buffers
2013-03-08 11:21:08 +09:00
Trustin Lee
16f4de7adb
Use the original stack trace when translating SocketTimeoutException to ConnectTimeoutException
2013-03-08 08:40:28 +09:00
Norman Maurer
61d6c48365
[ #1036 ] Add special ConnectTimeoutException which is thrown if a connection failed because of a timeout
2013-03-07 20:53:45 +01:00
Norman Maurer
9599bfd569
Fix class-cast exception which is a regression introduces in 256c931db2
2013-03-07 11:11:37 +01:00
Trustin Lee
526dafca75
Fix checkstyle
2013-03-07 16:13:44 +09:00
Norman Maurer
88cc8c1739
[ #1065 ] Provide Future/Promise without channel reference
2013-03-07 07:21:37 +01:00
Trustin Lee
148abe52f9
Reduce the amount of memory used for handler names
...
- Fixes #1123
2013-03-07 12:43:16 +09:00
Trustin Lee
1c1570ffc4
Make field access via ByteBuf.read/write*() faster by avoiding unnecessary boundary checks
...
- also disabled a time consuming test that is actually a regression test
2013-03-06 10:32:29 +09:00
Trustin Lee
6e5bb87219
Re-enable some critical tests
2013-03-05 18:42:34 +09:00
Trustin Lee
a8a7c4f576
Provide a way to implement an ChannelInbound/OutboundMessageHandler conveniently without extending an adapter class
...
- Add ChannelHandlerUtil and move the core logic of ChannelInbound/OutboundMessageHandler to ChannelHandlerUtil
- Add ChannelHandlerUtil.SingleInbound/OutboundMessageHandler and make ChannelInbound/OutboundMessageHandlerAdapter implement them. This is a backward incompatible change because it forces all handler methods to be public (was protected previously)
- Fixes : #1119
2013-03-05 17:27:53 +09:00
Norman Maurer
256c931db2
Move exceptionCaught(..) back to ChannelHandler. Related to [ #1118 ]
2013-03-05 07:34:34 +01:00
Trustin Lee
e4aa941bd4
Simplify ChannelInboundMessageHandlerAdapter.inboundBufferUpdated() implementation
2013-03-05 12:22:57 +09:00
Trustin Lee
0e3825899a
Move DefaultChannelPipeline.notifyHandlerException() to DefaultChannelHandlerContext / Always trigger exceptionCaught() at the handler that raised an exception
...
- Related: #1118
2013-03-05 12:13:14 +09:00
Norman Maurer
1603d9792d
Move methods from ChannelHandler to ChannelStateHandler like proposed in [ #1107 ]
2013-03-04 07:28:10 +01:00
Norman Maurer
3ac78b030a
Improve javadocs
2013-03-01 22:30:45 +01:00
Norman Maurer
03525f4b64
Fix javadocs
2013-03-01 21:42:08 +01:00
Norman Maurer
cb202da832
[ #1036 ] Use SocketTimeoutException when a connection timeout is detected to make it easier to detect timeout vs refused
2013-02-27 10:19:26 +01:00
Norman Maurer
dc4c4ab6b9
[ #1094 ] Fix possible StackOverFlowError when send FileRegions via the AioSocketChannel
2013-02-27 07:52:42 +01:00
Norman Maurer
71f25d13e2
[ #1095 ] Fix AioCompletionHandler stackoverflow detection to executed callback methods in all cases
2013-02-27 07:52:01 +01:00
Trustin Lee
49aa907bd0
[maven-release-plugin] prepare for next development iteration
2013-02-26 16:55:07 -08:00
Trustin Lee
5026c2f359
[maven-release-plugin] prepare release netty-4.0.0.Beta2
2013-02-26 16:54:53 -08:00
Trustin Lee
671f9d48d4
Use ConcurrentHashMapV8 wherever possible
...
- Fixes #1052
2013-02-26 15:54:51 -08:00
Trustin Lee
f67441354a
Move logging classes from internal to internal.logging
...
.. because internal is crowded
2013-02-26 14:54:25 -08:00
Trustin Lee
334b6c3129
Reduce the memory footprint of DefaultChannelPromise even more (part 2)
...
- Rewirte DefaultChannelFutureListeners - this saves another int field when there are more then one listener.
2013-02-26 14:43:12 -08:00
Trustin Lee
d8f5521210
Reduce the memory footprint of DefaultChannelPromise even more
...
- Merge waiters and fluchCheckpoint into a single field
- This limits the number of waiter threads to 2^24 - 1, which is still very large. Can you imagine an application with 16 million threads?
2013-02-26 13:52:49 -08:00
Trustin Lee
98192d7c01
Simplify DefaultChannelPromise
...
- Merge success0() and failure0() into set()
- Remove unnecessary local variable
2013-02-26 13:05:58 -08:00
Trustin Lee
709f2dfb33
Add comment about why we need to count the depth of the stack in AioCompletionHandler
2013-02-26 11:28:49 -08:00
Trustin Lee
0317baa10d
Fix regression in AioCompletionHandler that leads to StackOverflowError
2013-02-26 10:19:59 -08:00
Trustin Lee
434610b18c
Tell what the remote address was when ConnectException occurs.
...
- Fixes #1082
2013-02-22 13:45:17 -08:00
Norman Maurer
12b392b4cc
Revert "[ #1058 ] Add Channel/ChannelHandlerContext/ChannelPipeline.isWritable()"
...
This reverts commit 4e36fbca58
.
2013-02-22 14:42:32 +01:00
Norman Maurer
03b7b2d297
Revert "[ #1058 ] Fix incorrect logic to detect if ChannelHandlerContext is writable"
...
This reverts commit 3acb22c38c
.
2013-02-22 14:41:05 +01:00
Norman Maurer
fada776756
Refactor the aio transport to not depend on the AioChannelFinder and so not need for refelection
2013-02-22 06:53:33 +01:00
Trustin Lee
273948055a
Fix #1075 : DefaultChannelHandlerContext.fireChannelSuspended and fireInboundBufferUpdated do not work correctly if handlers with EventExecutor are added or removed from pipeline.
2013-02-21 17:16:05 -08:00
Trustin Lee
08e2914cef
Do not keep Runnables for the events that are triggered only once in most cases
2013-02-21 15:58:15 -08:00
Trustin Lee
dfbe4e48ae
Remove cruft
2013-02-21 15:53:50 -08:00
Trustin Lee
0f46d4b379
Revert 25c7a783a7
and fix #1064 differently
...
- Rename inbound/outboundBufferFreed to inbound/OutboundShutdown which makes more sense
- Move DefaultChannelHandlerContext.isInbound/OutboundBufferFreed() to DefaultChannelPipeline
- Fix a problem where invokeFreeInbound/OutboundBuffer() sets inbound/outboundShutdown too early (this was the direct cause of #1064 )
- Remove the volatile modifier - DCHC.prev/next are volatile and that's just enough
2013-02-21 15:19:42 -08:00
Norman Maurer
3acb22c38c
[ #1058 ] Fix incorrect logic to detect if ChannelHandlerContext is writable
2013-02-21 15:55:04 +01:00
Norman Maurer
25c7a783a7
Fix unneccessary use of EventLoop.execute(..) which gives some nice perf boost and also fix [ #1064 ] as we had a race
2013-02-21 15:53:04 +01:00
Norman Maurer
5bda3a25b0
add more debug info about discarded message
2013-02-19 19:08:04 +01:00
Norman Maurer
4e36fbca58
[ #1058 ] Add Channel/ChannelHandlerContext/ChannelPipeline.isWritable()
2013-02-17 21:13:03 +01:00
Trustin Lee
60ee9460a9
Outbound bridge is flushed only when its handler also implements ChannelInboundHandler
...
- Fixes #1056
2013-02-15 16:24:59 -08:00
Trustin Lee
189c2785c0
ByteBridge.flush() does not flush anything if the target buffer is not writable but expandable
...
- Fixes #1055
- fire inboundBufferUpdated() again if the bridge was not flushed completely.
2013-02-15 15:50:12 -08:00
Trustin Lee
dc43c2d8a9
ByteBridge.flush() does not flush anything if the target buffer is not writable but expandable
...
- Fixes #1055
2013-02-15 15:00:41 -08:00
Trustin Lee
d68a04a879
[maven-release-plugin] prepare for next development iteration
2013-02-14 12:56:24 -08:00
Trustin Lee
59e638f8f5
[maven-release-plugin] prepare release netty-4.0.0.Beta1
2013-02-14 12:56:15 -08:00
Trustin Lee
1011227b88
Remove apiviz tags - we are focusing on user guide instead and putting diagrams there
2013-02-14 12:09:16 -08:00
Trustin Lee
7b0bf2da7e
Use double-checked locking idiom + volatile optimization
2013-02-13 23:19:01 -08:00
Trustin Lee
4eff91df99
Fix a bug where DefaultChannelPromise.failure0() always returns false / Revert a bad commit
2013-02-13 22:53:10 -08:00
Norman Maurer
5370573400
Change ReferenceCounted.retain* to return itself and so allow method chaining
2013-02-14 07:39:44 +01:00
Trustin Lee
53c27ef5ae
More robust type parameter detection
...
- Also removed unnecessary constructors which were added due to incomplete type parameter detection logic
2013-02-13 19:02:55 -08:00
Trustin Lee
d0a3c2d95e
Reduce the memory footprint of DefaultChannelPromise
2013-02-13 16:38:20 -08:00
Trustin Lee
e2c948782b
Fix a problem where flush future is set more than once
2013-02-13 16:36:53 -08:00
Trustin Lee
6fe6456f8d
Fix indentation
2013-02-13 15:33:09 -08:00
Trustin Lee
7cefd10d9f
Fill/flush bridges only when necessary
2013-02-13 15:32:35 -08:00
Trustin Lee
87efff0bca
DefaultChannelHandlerContext.removed doesn't need to be volatile
2013-02-13 15:17:10 -08:00