Go to file
Norman Maurer a69fbaeed9 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:15:47 +01:00
all Fix missing version properties of transport-epoll in all-in-one JAR 2014-10-21 22:36:10 +09:00
buffer Implement internal memory access methods of CompositeByteBuf correctly 2014-12-30 15:56:53 +09:00
codec Determine CompositeByteBuf implementation by using ByteBufAllocator 2015-02-08 15:46:06 +01:00
codec-dns Add EDNS support to DnsQueryEncoder 2014-10-16 17:05:08 +09:00
codec-haproxy [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
codec-http Allow to use WebSocketClientHandshaker and WebSocketServerHandshaker with HttpResponse / HttpRequest 2015-02-06 10:46:07 +01:00
codec-http2 Http2DefaultFrameWriter direct write instead of copy 2015-02-06 11:56:14 -08:00
codec-memcache Add proxy support for client socket connections 2014-10-14 12:29:08 +09:00
codec-mqtt Fix dependency issues with hamcrest 2014-12-04 17:59:15 +09:00
codec-socks Add proxy support for client socket connections 2014-10-14 12:29:08 +09:00
codec-stomp Headers set/add/contains timeMillis methods 2014-12-06 22:40:28 +09:00
common Reorder PlatformDependent.isRoot() check 2015-02-08 12:00:16 +09:00
example Back port HTTP/2 codec from master to 4.1 2015-01-23 11:06:11 -05:00
handler Log only on debug log level in OpenSslEngine 2015-02-07 06:01:58 +01:00
handler-proxy Use Proxy-Authorization instead of Authorization for proxy authentication 2014-11-20 20:41:09 +09:00
license Implemented LZMA frame encoder 2014-09-15 15:05:36 +02:00
microbench Fix ByteBufUtilBenchmark on utf8 encodings. 2014-12-31 20:26:42 +09:00
resolver Name resolver API and DNS-based name resolver 2014-10-16 17:05:20 +09:00
resolver-dns Remove thepiratebay.se from the test domain list 2014-12-22 22:35:17 +09:00
tarball [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
testsuite Allow to use WebSocketClientHandshaker and WebSocketServerHandshaker with HttpResponse / HttpRequest 2015-02-06 10:46:07 +01:00
transport Not execute shutdownOutput(...) and close(...) in the EventLoop if SO_LINGER is used. 2015-02-08 20:15:47 +01:00
transport-native-epoll Not execute shutdownOutput(...) and close(...) in the EventLoop if SO_LINGER is used. 2015-02-08 20:15:47 +01:00
transport-rxtx [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
transport-sctp [maven-release-plugin] prepare for next development iteration 2014-08-16 03:27:42 +09:00
transport-udt Fix typo in param name 2015-01-16 20:30:35 +01:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Add JVM crash logs to .gitignore 2014-05-18 21:36:54 +09:00
.travis.yml Travis CI branch whitelisting 2013-03-11 09:55:43 +09:00
CONTRIBUTING.md Move the pull request guide to the developer guide 2014-03-12 13:13:58 +09:00
LICENSE.txt Relicensed to Apache License v2 2009-08-28 07:15:49 +00:00
NOTICE.txt Implemented LZMA frame encoder 2014-09-15 15:05:36 +02:00
pom.xml Fix #3331 Update Javassist from 3.18.0-GA to 3.19.0-GA 2015-02-07 12:25:07 +09:00
README.md Add a link to the 'native transports' page 2014-07-21 12:54:24 -07:00
run-example.sh Add logLevel property to enable different log levels for the examples. 2014-11-21 10:48:57 +09:00

Netty Project

Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

How to build

For the detailed information about building and developing Netty, please visit the developer guide. This page only gives very basic information.

You require the following to build Netty:

Note that this is build-time requirement. JDK 5 (for 3.x) or 6 (for 4.0+) is enough to run your Netty-based application.

Branches to look

The 'master' branch is where the development of the latest major version lives on. The development of all other versions takes place in each branch whose name is identical to <majorVersion>.<minorVersion>. For example, the development of 3.9 and 4.0 resides in the branch '3.9' and the branch '4.0' respectively.