netty5/transport-native-epoll/src/main/java/io/netty/channel/epoll
Norman Maurer 20ef4690e7 [#2375] [#2404] Fix bug in respecting ChannelConfig.setAutoRead(false) and also fix Channel.read() for OIO
Motivation:
At the moment ChanneConfig.setAutoRead(false) only is guaranteer to not have an extra channelRead(...) triggered when used from within the channelRead(...) or channelReadComplete(...) method. This is not the correct behaviour as it should also work from other methods that are triggered from within the EventLoop. For example a valid use case is to have it called from within a ChannelFutureListener, which currently not work as expected.

Beside this there is another bug which is kind of related. Currently Channel.read() will not work as expected for OIO as we will stop try to read even if nothing could be read there after one read operation on the socket (when the SO_TIMEOUT kicks in).

Modifications:
Implement the logic the right way for the NIO/OIO/SCTP and native transport, specific to the transport implementation. Also correctly handle Channel.read() for OIO transport by trigger a new read if SO_TIMEOUT was catched.

Result:
It is now also possible to use ChannelConfig.setAutoRead(false) from other methods that are called from within the EventLoop and have direct effect.

Conflicts:
	transport-sctp/src/main/java/io/netty/channel/sctp/nio/NioSctpChannel.java
	transport/src/main/java/io/netty/channel/socket/nio/NioDatagramChannel.java
	transport/src/main/java/io/netty/channel/socket/nio/NioSocketChannel.java
2014-04-17 07:50:51 +02:00
..
AbstractEpollChannel.java [#2375] [#2404] Fix bug in respecting ChannelConfig.setAutoRead(false) and also fix Channel.read() for OIO 2014-04-17 07:50:51 +02:00
EpollChannelOption.java [#2376] Add support for SO_REUSEPORT in native transport 2014-04-16 14:37:49 +02:00
EpollChannelOutboundBuffer.java Directly use memory addresses for gathering writes to reduce gc pressure. Part of [#2239] 2014-02-21 13:37:33 +01:00
EpollDatagramChannel.java [#2375] [#2404] Fix bug in respecting ChannelConfig.setAutoRead(false) and also fix Channel.read() for OIO 2014-04-17 07:50:51 +02:00
EpollDatagramChannelConfig.java [#2375] [#2404] Fix bug in respecting ChannelConfig.setAutoRead(false) and also fix Channel.read() for OIO 2014-04-17 07:50:51 +02:00
EpollDatagramChannelOutboundBuffer.java [#2377] Implement epoll based DatagramChannel 2014-04-16 15:05:43 +02:00
EpollEventLoop.java [#2297] Correctly close all registered Channels on EpollEventLoop.closeAll() 2014-03-10 20:37:16 +01:00
EpollEventLoopGroup.java User-definable thread model via ChannelHandlerInvoker 2014-03-24 18:09:27 +09:00
EpollServerSocketChannel.java [#2375] [#2404] Fix bug in respecting ChannelConfig.setAutoRead(false) and also fix Channel.read() for OIO 2014-04-17 07:50:51 +02:00
EpollServerSocketChannelConfig.java [#2375] [#2404] Fix bug in respecting ChannelConfig.setAutoRead(false) and also fix Channel.read() for OIO 2014-04-17 07:50:51 +02:00
EpollSocketChannel.java [#2375] [#2404] Fix bug in respecting ChannelConfig.setAutoRead(false) and also fix Channel.read() for OIO 2014-04-17 07:50:51 +02:00
EpollSocketChannelConfig.java [#2375] [#2404] Fix bug in respecting ChannelConfig.setAutoRead(false) and also fix Channel.read() for OIO 2014-04-17 07:50:51 +02:00
Native.java [#2377] Implement epoll based DatagramChannel 2014-04-16 15:05:43 +02:00
package-info.java Introduce a native transport for linux using epoll ET 2014-02-15 22:44:56 +01:00