netty5/transport-native-epoll
Norman Maurer ad7deb8dc1 Not execute shutdownOutput(...) and close(...) in the EventLoop if SO_LINGER is used.
Motivation:

If SO_LINGER is used shutdownOutput() and close() syscalls will block until either all data was send or until the timeout exceed. This is a problem when we try to execute them on the EventLoop as this means the EventLoop may be blocked and so can not process any other I/O.

Modifications:

- Add AbstractUnsafe.closeExecutor() which returns null by default and use this Executor for close if not null.
- Override the closeExecutor() in NioSocketChannel and EpollSocketChannel and return GlobalEventExecutor.INSTANCE if getSoLinger() > 0
- use closeExecutor() in shutdownInput(...) in NioSocketChannel and EpollSocketChannel

 Result:

No more blocking of the EventLoop if SO_LINGER is used and shutdownOutput() or close() is called.
2015-02-08 20:48:37 +01:00
..
src Not execute shutdownOutput(...) and close(...) in the EventLoop if SO_LINGER is used. 2015-02-08 20:48:37 +01:00
pom.xml Generate non-test JAR for netty-testsuite 2014-12-15 09:17:51 +09:00
README.md Introduce a native transport for linux using epoll ET 2014-02-15 22:42:07 +01:00

Native transport for Linux

See our wiki page.