Norman Maurer
bdedde1294
[ #1259 ] Add optimized queue for SCMP pattern and use it in NIO and native transport
...
This queue also produces less GC then CLQ when make use of OneTimeTask
2014-02-27 11:44:06 +01:00
Norman Maurer
c538fd5098
Fix check to clear READ_OP and EPOLLIN. Part of [ #2254 ]
2014-02-22 20:06:35 +01:00
Norman Maurer
b00e2a19d3
[ #2254 ] Correctly handle Channel.read() and ChannelHandlerContext.read()
...
This includes also when it is called from channelRead(...) and channelReadComplete(...) methods.
2014-02-22 18:45:36 +01:00
Norman Maurer
7fe10fe635
[ #2254 ] Fix regression in handling autoRead and Channel.read()
...
This regression was introduced by e0b39159657c9eb711047bc32367537c4870d467
2014-02-21 08:39:41 +01:00
Norman Maurer
34e11d2e16
Correctly handle remove from epoll and EPOLLRDHUP. Also fix a bug with removing EPOLLIN and EPOLLOUT
2014-02-19 16:30:24 +01:00
Norman Maurer
b2a0a25b8f
Use optimized write and read calls if memoryAddress is present. Part of [ #2239 ]
2014-02-17 21:06:57 +01:00
Trustin Lee
61bfd46264
Fix an inspector warning
2014-02-17 05:25:58 -08:00
Trustin Lee
ab257b0ac6
Overall clean-up in EpollSocketChannel
...
- Extract writev part from doWrite() for simplicity
- Clearer comments
2014-02-17 05:21:34 -08:00
Norman Maurer
ea73d074f2
[ #2238 ] Fix bug which caused a SIGSEGV when calling remoteAddress() or localAddress()
2014-02-17 11:59:28 +01:00
Norman Maurer
84b537519c
Correctly update the ByteBuffers position on write and writev
2014-02-17 07:30:06 +01:00
Norman Maurer
04dab876b6
Use correct writerIndex when read for channel
2014-02-16 20:21:14 +01:00
Norman Maurer
1edca5f8d9
Introduce a native transport for linux using epoll ET
...
This transport use JNI (C) to directly make use of epoll in Edge-Triggered mode for maximal performance on Linux. Beside this it also support using TCP_CORK and produce less GC then the NIO transport using JDK NIO.
It only builds on linux and skip the build if linux is not used. The transport produce a jar which contains all needed .so files for 32bit and 64 bit. The user only need to include the jar as dependency as usually
to make use of it and use the correct classes.
This includes also some cleanup of @trustin
2014-02-15 22:27:43 +01:00