Go to file
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
all Fix missing version properties of transport-epoll in all-in-one JAR 2014-10-21 22:36:19 +09:00
buffer Implement internal memory access methods of CompositeByteBuf correctly 2014-12-30 15:56:59 +09:00
codec Determine CompositeByteBuf implementation by using ByteBufAllocator 2015-02-08 15:45:50 +01:00
codec-dns Add EDNS support to DnsQueryEncoder 2014-10-16 17:06:20 +09:00
codec-haproxy Fix NPE problems 2014-07-20 12:55:08 +02:00
codec-http Fix compile error introduced by 6e942a3a20 2015-02-06 12:54:12 +01:00
codec-http2 Http2DefaultFrameWriter direct write instead of copy 2015-02-06 11:55:40 -08:00
codec-memcache Add proxy support for client socket connections 2014-10-14 12:40:33 +09:00
codec-mqtt Fix dependency issues with hamcrest 2014-12-04 17:53:35 +09:00
codec-socks Add proxy support for client socket connections 2014-10-14 12:40:33 +09:00
codec-stomp Headers set/add/contains timeMillis methods 2014-12-06 22:40:45 +09:00
common Reorder PlatformDependent.isRoot() check 2015-02-08 12:00:32 +09:00
example Remove the deprecated CookieDecoder 2015-01-21 22:34:18 +09:00
handler Log only on debug log level in OpenSslEngine 2015-02-07 06:02:29 +01:00
handler-proxy Use Proxy-Authorization instead of Authorization for proxy authentication 2014-11-20 20:39:18 +09:00
license Implemented LZMA frame encoder 2014-09-15 15:14:15 +02:00
microbench Fix ByteBufUtilBenchmark on utf8 encodings. 2014-12-31 20:26:50 +09:00
resolver Fix memory leak in NameResolverGroup 2014-11-20 20:22:17 +09:00
resolver-dns Remove thepiratebay.se from the test domain list 2014-12-22 22:35:58 +09:00
tarball [maven-release-plugin] prepare for next development iteration 2013-12-22 22:06:15 +09:00
testsuite Allow to use WebSocketClientHandshaker and WebSocketServerHandshaker with HttpResponse / HttpRequest 2015-02-06 10:47:08 +01:00
transport Not execute shutdownOutput(...) and close(...) in the EventLoop if SO_LINGER is used. 2015-02-08 20:48:37 +01:00
transport-native-epoll Not execute shutdownOutput(...) and close(...) in the EventLoop if SO_LINGER is used. 2015-02-08 20:48:37 +01:00
transport-rxtx Fix most inspector warnings 2014-07-02 19:04:11 +09:00
transport-sctp Allow to obtain RecvByteBufAllocator.Handle to allow more flexible implementations 2014-08-12 06:54:29 +02:00
transport-udt Fix typo in param name 2015-01-16 20:32:57 +01:00
.fbprefs Updated Find Bugs configuration 2009-03-04 10:33:09 +00:00
.gitignore Exclude bin directory from git Motivation: 2014-08-27 06:33:22 +02: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:17: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:14:15 +02:00
pom.xml Fix #3331 Update Javassist from 3.18.0-GA to 3.19.0-GA 2015-02-07 12:25:19 +09:00
README.md Add a link to the 'native transports' page 2014-07-21 12:10:16 -07:00
run-example.sh Add logLevel property to enable different log levels for the examples. 2014-11-21 10:49:27 +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.