Norman Maurer
3d44aeca50
Merge workaround for epoll(..) bug into master branch. See #365 , #535 and #327
2012-08-29 08:03:32 +02:00
Trustin Lee
02f3df55a8
[ #107 ] Add support for closing either input or output part of a channel
...
- Add shutdownOutput() and isOutputShutdown() to SocketChannel
2012-08-29 13:26:29 +09:00
Trustin Lee
dca860e0d5
Remove code duplication in OIO transport / Make concrete unsafe final
2012-08-29 12:58:00 +09:00
Trustin Lee
37f8710f2b
Rename DefaultAioChannelFinder to ReflectiveAioChannelFinder
2012-08-29 12:13:50 +09:00
Trustin Lee
1b810c4be6
Rename to the correct method name
2012-08-29 12:04:56 +09:00
Trustin Lee
9a177d99bf
Make AioChannelFinder implementations final
2012-08-28 17:02:03 +09:00
Trustin Lee
a643bdd331
Fix a checkstyle violation
2012-08-28 17:00:54 +09:00
Trustin Lee
cc2ada0b6c
Add missing license headers
2012-08-28 16:59:30 +09:00
Trustin Lee
709b3abd83
Improve AioChannelFinder implementations
...
- Use copy-on-write map
- Fix a potential bug where the old implementation assumed that one
Runnable type always wraps the same Runnable
- Cache offset value instead of Field in UnsafeAioChannelFinder
2012-08-28 16:57:45 +09:00
Trustin Lee
17ecbdd804
Better error message
2012-08-28 16:26:57 +09:00
Trustin Lee
c565b59fe3
Remove a unnecessary annotation
2012-08-28 16:25:01 +09:00
Trustin Lee
fe4a8d6dc9
Extract ChannelFinder into separate top level classes
2012-08-28 16:14:35 +09:00
Trustin Lee
e55a1f11b5
[ #559 ] Fix SocketSuspendTest.testSuspendAccept()
...
- Reimplemented the test
- Fixed various bugs related with read/accept suspension found while testing
- defaultInterestOps of NioServerSocketChannel should be OP_ACCEPT
- There's no need do deregister and re-register to suspend/resume accept()
- Occational infinite loop with 100% CPU consumption in OioEventLoop, caused by OioSocketChannel
- Even if read/accept is suspended, what's read or accepted should be notified to a user
2012-08-28 15:55:51 +09:00
Trustin Lee
f3c940d208
Add ChannelPipeline.first/lastContext() / Cleanup
2012-08-28 13:03:41 +09:00
Norman Maurer
2710af1b8a
More javadocs
2012-08-28 02:10:17 +02:00
Norman Maurer
100dd541ba
Rename ChannelHandlerContext.type() to ChannelHandlerContext.types() as it return a Set
2012-08-28 01:19:45 +02:00
Norman Maurer
ea3d304206
Some javadocs love
2012-08-28 01:14:05 +02:00
Norman Maurer
6a62c259ab
Merge pull request #566 from netty/unsafe_channel_access
...
Use Unsafe when possible to access AbstractAioChannel to prevent slow Re...
2012-08-27 01:49:35 -07:00
Norman Maurer
778599baf8
Allow to adjust timeout of Selector.select(timeout) via io.netty.selectTimeout property. See #568
2012-08-26 10:05:20 +02:00
Norman Maurer
967b5424c5
Use Unsafe when possible to access AbstractAioChannel to prevent slow Reflection usage. This is kind of related to #528
2012-08-25 22:50:31 +02:00
Cruz Julian Bishop
ca952e11c0
AbstractChannel: Remove function getRandom()
...
Requested by @trustin and @normanmaurer
Signed-off-by: Cruz Julian Bishop <cruzjbishop@gmail.com>
2012-08-25 20:01:57 +10:00
Cruz Julian Bishop
1e3fe3ffc3
AbstractChannel: hashCode() now returns the channel's ID
...
Requested by @trustin
Signed-off-by: Cruz Julian Bishop <cruzjbishop@gmail.com>
2012-08-25 13:36:34 +10:00
Cruz Julian Bishop
ad7f7a2f25
Merge branch 'master' into pseudorandom-channel-IDs
2012-08-25 13:34:17 +10:00
Norman Maurer
cd9a36d4e7
Merge pull request #553 from jfallows/aio-unmodified-buffer
...
Ensure unmodified buffer delivered via pipeline after AIO read completes
2012-08-24 09:25:01 -07:00
Trustin Lee
ba6c032180
[ #557 ] Provide pre/post handler methods to ChannelInboundMessageHandler.inboundBufferUpdated()
...
- Add pre- and post- handler methods
2012-08-24 17:25:07 +09:00
Trustin Lee
c9174e0733
Prefer discardSomeReadBytes()
2012-08-24 17:22:14 +09:00
Cruz Julian Bishop
d6023ef129
Merge branch 'master' into pseudorandom-channel-IDs
2012-08-23 09:59:02 +10:00
Cruz Julian Bishop
7e3bfaf24c
Generate channel IDs in a pseudorandom fashion
...
Requested by @psweeny in #547
Signed-off-by: Cruz Julian Bishop <cruzjbishop@gmail.com>
2012-08-23 09:56:58 +10:00
Trustin Lee
00188a2923
[ #160 ] No response to write if server is using SslHandler and client is not
...
- Make SslHandler close the connection on SSLException or NotSslRecordException
2012-08-22 13:38:09 +09:00
Trustin Lee
b25996d024
[ #486 ] Make NoSuchBufferException give more useful message.
...
- Remove confusing exception messages
- Do not use default exception messages wherever possible
2012-08-20 21:03:23 +09:00
John Fallows
3cce40bd79
Suppress unchecked cast warnings for config options.
2012-08-19 13:49:09 -07:00
Trustin Lee
2bb114bcb7
[ #504 ] SslHandler.flush() notifies futures prematurely.
...
- Make use of ChannelFlushFutureNotifier to notify flush futures
correctly
- Improve the test case to ensure this commit fixes the bug
2012-08-19 17:36:58 +09:00
Trustin Lee
3f101ad3d1
[ #504 ] SslHandler.flush() notifies futures prematurely.
...
- Add ChannelFlushFutureNotifier
- Extracted the functionality that keeps track of flush futures in
AbstractChannel. Will be used in SslHandler.
2012-08-19 17:05:51 +09:00
Trustin Lee
ebf33c6e3b
No need to make the timeout of thread model test too long
...
Using m1.large instance fixed the unstable build problem with CloudBees
2012-08-19 15:18:51 +09:00
Trustin Lee
7b213d2c93
Double the timeout of LocalTransportThreadModelTest
...
- because it seems to make the build unstable in CloudBees
2012-08-19 15:12:18 +09:00
Trustin Lee
8bfbebc772
Rename TaskScheduler to ChannelTaskScheduler
2012-08-19 15:10:09 +09:00
Trustin Lee
44daa99d3f
[ #530 ] Allow using a bounded ByteBuf as the first inbound buffer
...
- Clean up
- Do not stop reading when reached at maxCapacity.
- Just let handler drain the buffer and try again quickly.
- No more magic number in OIO buffer expansion
2012-08-19 14:48:56 +09:00
Trustin Lee
9e75a33d3d
[ #530 ] Allow using a bounded ByteBuf as the first inbound buffer
2012-08-19 13:55:12 +09:00
John Fallows
cd8e2576b4
Ensure unmodified buffer delivered via pipeline after read completes but before next read begins.
2012-08-18 11:04:10 -07:00
Trustin Lee
11c742f392
[ #59 ] Make ChannelFuture implement Future<Void>
2012-08-18 22:53:58 +09:00
Trustin Lee
f75ba72aeb
Allow using non-BlockingQueue
...
- NioEventLoop never uses takeTask(), and ConcurrentLinkedList is faster
than LinkedBlockingQueue
2012-08-18 18:48:44 +09:00
Trustin Lee
421eabe666
[ #473 ] Fix elevated context switching in SingleThreadEventExecutor
...
- Remove polling in SingleThreadEventExecutor
- Create a dedicated scheduled task scheduler called 'TaskScheduler'
- TaskScheduler is created per EventLoopGroup / EventExecutorGroup
- SingleThreadEventExecutor delegates all scheduled execution requests
to TaskScheduler provided as a constructor parameter
- TaskScheduler is a specialized form of single threaded
ScheduledExecutorService which requires an EventExecutor as a
parameter for all requests.
2012-08-18 18:40:21 +09:00
Trustin Lee
9c17304755
Use different EventLoopGroup for AIO transport tests
...
- plus tiny cleanup
2012-08-17 12:18:00 +09:00
Norman Maurer
8b66e65277
Merge pull request #515 from jfallows/master
...
Add support for AIO server channel accepting new channels onto a separate child event loop group. See #514 .
2012-08-14 09:58:47 -07:00
John Fallows
148e629104
Use childGroup for accepted AioSocketChannels, children of previously bound AioServerSocketChannel.
2012-08-13 23:12:50 -07:00
norman
061252e4b4
Allow to config read/write timeout for the AIO transport. See #509
2012-08-14 08:06:54 +02:00
John Fallows
06fd869711
Add support for AIO scattering reads and gathering writes.
...
o Add ByteBuf.hasNioBuffers() method
o Promote CompositeByteBuf.nioBuffers() methods to ByteBuf
o Use ByteBuf.nioBuffers() methods from AioSocketChannel
2012-08-12 17:29:07 -07:00
Trustin Lee
d3a2835503
Add ServerBootstrap.group() that takes a single group
2012-08-10 20:26:04 +09:00
Trustin Lee
d298707198
[ #502 ] Split EventLoop/EventExecutor into parent and children
...
- Add EventExecutorGroup and EventLoopGroup
- EventExecutor and EventLoop extends EventExecutorGroup and
EventLoopGroup
- They form their own group so that .next() returns itself.
- Rename Bootstrap.eventLoop() to group()
- Rename parameter names such as executor to group
- Rename *EventLoop/Executor to *EventLoop/ExecutorGroup
- Rename *ChildEventLoop/Executor to *EventLoop/Executor
2012-08-10 20:17:18 +09:00
Trustin Lee
f4fa5698c1
Add a TODO which should be done when buffer pool is implemented
2012-08-10 10:19:01 +09:00