Norman Maurer
60b830ba89
Directly use memory addresses for gathering writes to reduce gc pressure. Part of [ #2239 ]
...
This also does factor out some logic of ChannelOutboundBuffer. Mainly we not need nioBuffers() for many
transports and also not need to copy from heap to direct buffer. So this functionality was moved to
NioSocketChannelOutboundBuffer. Also introduce a EpollChannelOutboundBuffer which makes use of
memory addresses for all the writes to reduce GC pressure
2014-02-21 14:16:37 +01:00
Norman Maurer
bea810707c
[ #2254 ] Fix regression in handling autoRead and Channel.read()
...
This regression was introduced by e0b39159657c9eb711047bc32367537c4870d467
2014-02-21 09:46:28 +01:00
Norman Maurer
b49490e239
Move marking ChannelPromise for writes uncancellable to addFlush for keep things simple
2014-02-17 16:15:49 +01:00
Trustin Lee
d5e897bba2
Determine the default allocator from system property
...
- Add ByteBufAllocator.DEFAULT
- The default allocator is now 'pooled'
2014-02-14 13:04:48 -08:00
Norman Maurer
657af70576
Prettify exception message
2014-02-13 06:47:40 +01:00
Norman Maurer
0ad029bf96
Allow to set IoRatio to 100%
2014-02-12 19:30:57 +01:00
Norman Maurer
4dc337a717
Correctly respect isAutoRead() and make it consistent across OIO/NIO
2014-02-11 20:46:58 +01:00
Norman Maurer
a96eb96646
Allow to cancel non-flushed writes
2014-02-11 20:00:56 +01:00
Trustin Lee
6c094237e5
Do not warn if failed to mark a void promise as success
...
- it's always supposed to fail.
2014-02-10 15:04:03 -08:00
Trustin Lee
fee1d9e75c
Make most outbound operations cancellable / More robust promise update
...
- Inspired by #2214 by @normanmaurer
- Call setUncancellable() before performing an outbound operation
- Add safeSetSuccess/Failure() and use them wherever
2014-02-10 14:52:24 -08:00
Trustin Lee
a34d5baad2
Make most outbound operations are cancellable
...
- Inspired by #2214
- It actually reduces the chance of trying to marking a cancelled promise as success again, which raises an IllegalStateException.
2014-02-10 14:05:29 -08:00
Norman Maurer
bd20f80ca0
[ #2215 ] DefaultChannelHandlerContext tasks needs to be volatile to ensure every thread only see full initialized instances
2014-02-08 10:35:54 +01:00
Norman Maurer
7a1a30f0ad
Provide an optimized AtomicIntegerFieldUpdater, AtomicLongFieldUpdater and AtomicReferenceFieldUpdater
2014-02-06 21:07:31 +01:00
Norman Maurer
1d8a200849
Not wakeup the EventLoop for writes as they will not cause a flush anyway
2014-02-01 15:00:14 +01:00
Norman Maurer
f7f808c7e0
Better exception message to tell the user why it is not supported
2014-01-30 07:00:53 +01:00
Norman Maurer
96f94cfcb1
[ #2164 ] Only reregister SelectionKeys that are still valid
2014-01-29 07:19:41 +01:00
Trustin Lee
0f1b1be0aa
Enable a user specify an arbitrary information with ReferenceCounted.touch()
...
- Related: #2163
- Add ResourceLeakHint to allow a user to provide a meaningful information about the leak when touching it
- DefaultChannelHandlerContext now implements ResourceLeakHint to tell where the message is going.
- Cleaner resource leak report by excluding noisy stack trace elements
2014-01-29 11:44:59 +09:00
Trustin Lee
65ebecb85f
Touch a ReferenceCounted while it traverses across a pipeline
2014-01-28 20:10:19 +09:00
Trustin Lee
b887e35ac2
Add ReferenceCounted.touch() / Add missing retain() overrides
...
- Fixes #2163
- Inspector warnings
2014-01-28 20:06:55 +09:00
Trustin Lee
7d501db7f8
Fix API documentation on the usage of AttributeKey
2014-01-28 13:57:08 +09:00
Norman Maurer
cac449a5e4
Add testcase to try to reproduce #2144
2014-01-23 07:10:08 +01:00
Trustin Lee
13f508154a
Merge the attribute map of ChannelHandlerContext into Channel
...
- Fixes #2136
2014-01-20 15:16:12 +09:00
William Kemper
cab2a03760
fix grouping for isActive - socket.isBound is almost always true and should not override 'isOpen'
2014-01-17 07:23:03 +01:00
Trustin Lee
b165134044
Better exception message
2014-01-13 23:30:32 +09:00
Trustin Lee
17c0722862
Add missing validation which results in NPE later
2014-01-13 23:29:41 +09:00
Trustin Lee
9c1b9492d5
Fix a bug where DefaultChannelPipelineTest.testFireChannelRegistered() triggers channelRegistered() twice
2014-01-13 23:27:56 +09:00
Trustin Lee
999b51b026
Get the PID properly on Android
...
- Related: #2109
2014-01-13 22:28:28 +09:00
Trustin Lee
6df3bb5a79
Fix a problem where DefaultChannelId prevents Netty 5 from running on Android
...
- Fixes #2109
- Use reflection to find the current PID
2014-01-13 17:33:55 +09:00
Norman Maurer
9276fbaea0
[ #2104 ] Make sure we only act on the SelectionKey if it is valid
2014-01-09 18:28:33 +01:00
Trustin Lee
2af1419056
Fix a potential NPE due to the race between a connection attempt and its cancellation
...
- should fix #2086
2014-01-09 19:25:08 +09:00
Norman Maurer
0b8e732c6c
[ #2086 ] Fix race which could produce NPE in AbstractNioUnsafe.finishConnect
2014-01-09 08:22:56 +01:00
milenkovicm
06823e3aff
ChannelOutboundBuffer returns total pending write size
...
total pending write size may be used to optimize write batching
2014-01-07 06:57:20 +01:00
Veebs
194ba39bc0
Fix typo
2014-01-03 11:15:30 +01:00
Michael Nitschinger
299ce22938
Fix typo in EmbeddedSocketAddress.
2014-01-02 15:34:15 +01:00
Trustin Lee
f3a842ecca
[maven-release-plugin] prepare for next development iteration
2013-12-22 22:06:15 +09:00
Trustin Lee
888dfba76f
[maven-release-plugin] prepare release netty-5.0.0.Alpha1
2013-12-22 22:06:06 +09:00
Trustin Lee
0d437baef0
Increase the default maxMessagesPerRead of AbstractNioByteChannel to 16
...
- Related: #2079
2013-12-21 20:08:15 +09:00
Trustin Lee
3ca3efac52
Fix a bug where adaptive recvbuf size prediction doesn't work correctly when maxMessagesPerRead is > 1
2013-12-21 19:56:36 +09:00
Trustin Lee
4e05c52c2e
More graceful registration failure
...
- Fixes #2060
- Ensure to return a future/promise implementation that does not fail with 'not registered to an event loop' error for registration operations
- If there is no usable event loop available, GlobalEventExecutor.INSTANCE is used as a fallback.
- Add VoidChannel, which is used when an instantiation of a channel fails.
2013-12-21 18:47:03 +09:00
Norman Maurer
e1c47632e8
[ #2079 ] Stop reading once the NIO byte Channel was complete drained
2013-12-21 10:39:29 +01:00
Trustin Lee
04ec2e1330
Add Recycler.Handle.recycle() so that it's possible to recycle an object without an explicit reference to Recycler
2013-12-19 01:10:52 +09:00
Trustin Lee
3e8a1ed611
Fix a race condition where flush() can be triggered before write()
...
.. when a handler overrides write() but not flush().
2013-12-17 09:51:41 +09:00
Trustin Lee
94d6e44bba
Change the return type of EmbeddedChannel.read*() from Object to an ad-hoc type parameter
...
.. so that there's no need to explicitly down-cast.
Fixes #2067
2013-12-16 22:22:47 +09:00
Trustin Lee
4302c016d2
Rename flushAndWrite() to writeAndFlush()
...
- Related: #2066
2013-12-16 14:58:14 +09:00
Norman Maurer
1a9eb05ba0
[ #2065 ] Fix NPE in AbstractOioByteChannel during write to the socket
2013-12-15 11:44:51 +01:00
Trustin Lee
b8ca01bd9e
Disable logging temporarily when running testRegistrationAfterShutdown
2013-12-08 14:17:35 +09:00
Trustin Lee
0d70ba4938
Disable logging temporarily when running testRegistrationAfterShutdown2
2013-12-08 14:12:10 +09:00
Trustin Lee
524726fd99
Fix NoSuchElementException raised by ChannelInitializer
...
.. again.
2013-12-07 11:03:55 +09:00
Trustin Lee
3d54a323ca
Revert "Fix NoSuchElementException raised by ChannelInitializer"
...
This reverts commit 3c453f5dba
.
2013-12-07 10:57:13 +09:00
Norman Maurer
643ce2f8c0
Fix all leaks reported during tests
...
- One notable leak is from WebSocketFrameAggregator
- All other leaks are from tests
2013-12-07 00:47:30 +09:00
Trustin Lee
3c453f5dba
Fix NoSuchElementException raised by ChannelInitializer
2013-12-07 00:39:41 +09:00
Trustin Lee
974d1ebf0a
Merge package private interfaces into public ones.
...
- Related: #1989 and #1991
2013-11-27 18:42:23 +09:00
Trustin Lee
110745b0eb
Remove the distinction of inbound handlers and outbound handlers
...
- Fixes #1808
- Move all methods in ChannelInboundHandler and ChannelOutboundHandler up to ChannelHandler
- Remove ChannelInboundHandler and ChannelOutboundHandler
- Deprecate ChannelInboundHandlerAdapter, ChannelOutboundHandlerAdapter, and ChannelDuplexHandler
- Replace CombinedChannelDuplexHandler with ChannelHandlerAppender
because it's not possible to combine two handlers into one easily now
- Introduce 'Skip' annotation to pass events through efficiently
- Remove all references to the deprecated types and update Javadoc
2013-11-27 17:31:28 +09:00
Trustin Lee
807d96ed6c
Simplify bundle generation / Add io.netty.versions.properties to all JARs
...
- Fixes #2003 properly
- Instead of using 'bundle' packaging, use 'jar' packaging. This is
more robust because some strict build tools fail to retrieve the
artifacts from a Maven repository unless their packaging is not 'jar'.
- All artifacts now contain META-INF/io.netty.version.properties, which
provides the detailed information about the build and repository.
- Removed OSGi testsuite temporarily because it gives false errors
during split package test and examination.
- Add io.netty.util.Version for easy retrieval of version information
2013-11-26 22:00:14 +09:00
Trustin Lee
132af3a485
Introduce ChannelHandlerInvoker, dedeciated for invoking event handler methods, and move most handler invocation code in ChannelHandlerContext to the default ChannelHandlerInvoker implementation
...
- Fixes #1912
- Add ChannelHandlerInvoker and its default implementation
- Add pipeline manipulation methods that accept ChannelHandlerInvoker
- Rename Channel(Inbound|Outbound)Invoker to
Channel(Inbound|Outbound)Ops to avoid confusion
- Remove the Javadoc references to the package-private interfaces
2013-11-21 14:14:23 +09:00
Trustin Lee
d0e928db70
Additional fix for potential race condition which occurs when a user cancels a connection attempt
...
- Fixes #1986
2013-11-18 17:00:23 +09:00
Trustin Lee
38f57adb70
Fix an unexpected IllegalStateException from a selector loop when a user cancels a connection attempt
...
- Fixes #1986
2013-11-18 16:33:49 +09:00
Trustin Lee
786fdbd6e0
Bring back ChannelGroup.find(id)
2013-11-18 15:59:44 +09:00
Trustin Lee
2235873537
Resurrect Channel.id() with global uniqueness
...
- Fixes #1810
- Add a new interface ChannelId and its default implementation which generates globally unique channel ID.
- Replace AbstractChannel.hashCode with ChannelId.hashCode() and ChannelId.shortValue()
- Add variants of ByteBuf.hexDump() which accept byte[] instead of ByteBuf.
2013-11-18 15:30:12 +09:00
Trustin Lee
daf15fc167
Don't create an EmbeddedSocketAddress every time
2013-11-08 18:01:29 +09:00
Norman Maurer
a86e215718
Fix regression which lead to leak buffers when nothing could be read from the Channel.
...
This was introduced as part of #1812 , but fortunatualy was not part of any release.
2013-11-07 07:13:20 +01:00
Trustin Lee
7fff25c0de
Remove AUTO_CLOSE option
...
- Related #1952
- Since 5.0, we ask users decide to close the channel on write failure.
2013-11-05 17:34:48 +09:00
Trustin Lee
e2de807fb0
Add AUTO_CLOSE option
...
- Fixes #1952
- If AUTO_CLOSE is turned on, Netty will close the channel immediately and automatically on write failure. The default is false.
2013-11-05 17:23:58 +09:00
Trustin Lee
26415b8f4c
Use StringUtil.simpleClassName(..) instead of Class.getSimpleName() where necessary
...
- Class.getSimpleName() doesn't render anonymous classes very well
- + some minor cleanup
2013-11-04 19:42:33 +09:00
Trustin Lee
6b0025430e
Bump the version to 5.0.0.Alpha1
2013-11-04 19:14:40 +09:00
Norman Maurer
de2c6acecf
[ #1940 ] Add javadoc to explain how the FileChannel is closed when using DefaultFileRegion
2013-11-02 15:59:56 +01:00
Trustin Lee
9d611a182f
Rename SimpleChannelInboundHandler.channelRead0() to messageReceived()
...
- Related: #1590
2013-11-02 19:59:21 +09:00
Norman Maurer
542efdc7c7
[ #1812 ] All to have NioMessageUnsafe.read() inlined
2013-10-26 17:43:10 +02:00
Trustin Lee
0dda7df344
Add a shortcut method for collision-free naming
2013-10-25 20:01:31 +09:00
Trustin Lee
dc009b2c2c
Replace UniqueName with Constant and ConstantPool
...
- Proposed fix for #1824
UniqueName and its subtypes do not allow getting the previously registered instance. For example, let's assume that a user is running his/her application in an OSGi container with Netty bundles and his server bundle. Whenever the server bundle is reloaded, the server will try to create a new AttributeKey instance with the same name. However, Netty bundles were not reloaded at all, so AttributeKey will complain that the name is taken already (by the previously loaded bundle.)
To fix this problem:
- Replaced UniqueName with Constant, AbstractConstant, and ConstantPool. Better name and better design.
- Sctp/Udt/RxtxChannelOption is not a ChannelOption anymore. They are just constant providers and ChannelOption is final now. It's because caching anything that's from outside of netty-transport will lead to ClassCastException on reload, because ChannelOption's constant pool will keep all option objects for reuse.
- Signal implements Constant because we can't ensure its uniqueness anymore by relying on the exception raised by UniqueName's constructor.
2013-10-25 19:21:53 +09:00
Norman Maurer
98541be4b7
[ #1947 ] Handle RejectExecutionException graceful for outbound operations
2013-10-25 07:57:25 +02:00
Norman Maurer
db765e5dd4
[ #1812 ] Allow for inline for most common cases when use NioByteUnsafe.read()
2013-10-23 19:53:54 +02:00
Norman Maurer
da1418e269
[ #1920 ] Fix IndexOutOfBoundsException when using PooledByteBufAllocator with SCTP and NIO Datagram channels
2013-10-16 11:51:50 +02:00
Trustin Lee
16bf687aec
Ensure the selector implementation can be instrumented before attempting instrumentation
...
- Fixes #1908
2013-10-11 12:07:46 +09:00
Trustin Lee
136e1ebba8
Fix compilation errors / Cleanup
2013-10-08 17:20:07 +09:00
Trustin Lee
9097fce9e3
Allow empty handler list when creating a new EmbeddedChannel
...
.. so that it can be used for dynamically initialized pipelines
- Fixes #1899
2013-10-08 17:18:41 +09:00
Trustin Lee
1c15ba0c95
Rename getChildGroup() to childEventLoopGroup() / Minor cleanup
2013-10-08 17:03:50 +09:00
Bill Gallagher
e743a27e75
Pass eventLoop and childEventLoopGroup as Channel constructor parameters
...
- Add ServerChannelFactory for ServerBootstrap which is the counterpart
of ChannelFactory for Bootstrap
2013-10-08 17:03:50 +09:00
Trustin Lee
8864792499
Fixes the problem where the promise of the outbound operation that causes a channel closure is notified after channelInactive()
...
- Fixes #1897
2013-10-08 12:24:32 +09:00
Norman Maurer
44293291a7
Use direct ByteBuf for the test to make sure it is not copied
2013-10-07 08:07:38 +02:00
Norman Maurer
7ad3c1e10c
[ #1890 ] Correctly expand ByteBuffer array in all cases
...
The problem was that we did not handle the case correctly when doubling the array was not enough. We need to keep doubling until everything fits in.
2013-10-06 15:30:51 +02:00
Norman Maurer
a4a207fc4f
Fix checkstyle
2013-10-02 06:44:10 +02:00
Bill Gallagher
a5220198ba
use enum for state in LocalChannel
2013-10-02 06:32:03 +02:00
Bill Gallagher
f80109f423
use enum for state in EmbeddedChannel
2013-10-01 21:08:45 +02:00
Bill Gallagher
20d5361403
[ #1832 ] - Channel writability change notifications sometimes fail to fire
2013-09-30 20:09:28 +02:00
Norman Maurer
c2101d3c56
Cache underlying ByteBuffers and count in ChannelOutboundBuffer.Entry to reduce object creation and so GC pressure
...
Beside this it also helps to reduce CPU usage as nioBufferCount() is quite expensive when used on CompositeByteBuf which are
nested and contains a lot of components
2013-09-26 21:01:40 +02:00
Norman Maurer
cd5f9a2212
Introduce a new ChannelOption called DATAGRAM_CHANNEL_ACTIVE_ON_REGISTRATION. Related to [ #1830 ]
...
This ChannelOption allows to tell the DatagramChannel implementation to be active as soon as they are registrated to their EventLoop. This can be used to make it possible to write to a not bound DatagramChannel.
The ChannelOption is marked as @deprecated as I'm looking for a better solution in master which breaks default behaviour with 4.0 branch.
2013-09-24 11:51:54 +02:00
Sasha Zverev
71c062167d
Slip in DefaultOioSocketChannelConfig (setAllowHalfClosure used to ignore argument)
2013-09-21 20:14:12 +02:00
Norman Maurer
3cfcf09af8
More efficient handling of incomplete writes.
...
The problem with the old way was that we always set the OP_WRITE when the buffer could not be written
until the write-spin-count was reached. This means that in some cases the channel was still be writable
but we just was not able to write out the data quick enough. For this cases we should better break out the
write loop and schedule a write to be picked up later in the EventLoop, when other tasks was executed.
The OP_WRITE will only be set if a write actual returned 0 which means there is no more room for writing data
and this we need to wait for the os to notify us.
2013-09-17 07:01:05 +02:00
Norman Maurer
8dc57f6933
[ #1836 ] Add comment to explain why read is triggered
2013-09-17 06:58:23 +02:00
Norman Maurer
87a6a68059
[ #1830 ] Add testcase for write to not bound DatagramChannel impls and revert change in OIO as it breaks things as the udnerlying socket lazy binds
2013-09-12 09:29:40 +02:00
Norman Maurer
50106f3d41
Make DatagramChannel impls .isActive() return true when the underlying Channel is open. This also fixes [ #1830 ]
2013-09-11 20:38:04 +02:00
Norman Maurer
98633e0aee
Allow to only register a Channel via AbstractBootstrap and bind/connect it later. Related to [ #1829 ]
2013-09-11 20:37:53 +02:00
Norman Maurer
6716dca17a
Use a Thread-local based direct buffer pool if non pooled allocator is used
2013-09-05 11:58:03 +02:00
Trustin Lee
95576d6559
Ensure operationProgressed is invoked even on completion
...
- Fixes #1809
2013-09-05 18:36:48 +09:00
Norman Maurer
9331226406
Split up the nioBuffers() method to allow for inline. Related to #1812
...
This move less common method patterns to extra methods and so make the nioBuffers() method with most common pattern (backed by one ByteBuffer) small enough for inlining.
2013-09-05 09:24:27 +02:00
Norman Maurer
d75897bb2d
[ #1805 ] Fix example in javadocs of SimpleChannelInboundHandler
2013-09-03 20:31:42 +02:00
Norman Maurer
a52bbd20f4
Make sure only direct ByteBuffer are passed to the underlying jdk Channel.
...
This is needed because of otherwise the JDK itself will do an extra ByteBuffer copy with it's own pool implementation. Even worth it will be done
multiple times if the ByteBuffer is always only partial written. With this change the copy is done inside of netty using it's own allocator and
only be done one time in all cases.
2013-09-02 20:17:34 +02:00
Norman Maurer
70f5a4e2ce
[ #1683 ] Remove used ChannelOptions
2013-09-02 10:07:10 +02:00
bgallagher
c149f4bcc0
Remove support from deregister a Channel from a EventLoop manually
2013-08-29 18:11:16 +02:00
Vladimir Krivosheev
761e9ba956
ability to use Executor instead of ThreadFactory
2013-08-27 07:59:27 +02:00
Norman Maurer
6fc297bc42
[ #1785 ] Fix incorrect javadocs
2013-08-27 06:54:50 +02:00
Norman Maurer
09a748abdb
Bump up version to 4.1.0.Alpha1-SNAPSHOT
2013-08-26 15:18:18 +02:00
Norman Maurer
2e39b25cd4
[maven-release-plugin] prepare for next development iteration
2013-08-26 12:01:03 +02:00
Norman Maurer
b67659a866
[maven-release-plugin] prepare release netty-4.0.8.Final
2013-08-26 12:00:54 +02:00
Norman Maurer
5e9b199296
@deprecated all methods which are related to deregister as it will be removed in 4.1.0.Final
2013-08-26 11:36:56 +02:00
Norman Maurer
80d30c3dd8
Small code improvements
2013-08-26 07:52:47 +02:00
Norman Maurer
77d4222db5
[ #1777 ] Use correct Thread when close per channel
2013-08-25 21:22:53 +02:00
Norman Maurer
f76c01c3aa
[ #1782 ] Fix IndexOutOfBoundException with direct buffer and gathering writes
2013-08-24 18:16:05 +02:00
Trustin Lee
7aefd0cbdb
Make AbstractBootstrap public
...
.. to work around the issue with JDK reflection described here:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4283544
Fixes #1780
2013-08-24 17:20:53 +09:00
Norman Maurer
9ca20b73d3
Add testcase to show channelRegistered is called
2013-08-23 17:17:28 +02:00
bgallagher
51fa795819
fix race condition in test
2013-08-23 16:20:02 +02:00
Norman Maurer
206dc2a391
[ #1772 ] Make sure ChannelOutboundBuffer.recycle() does also reset unflushed, flushed and tail.
...
This fix a IndexOutOfBoundsException which as triggered if recycle() did cut down the buffer[] to the initial size.
2013-08-23 09:01:16 +02:00
Norman Maurer
9fd35d09a2
[ #1770 ] Fix NPE which was thrown if connection timeout was disabled and the connect did not finish directly when using NIO
2013-08-22 12:38:56 +02:00
bgallagher
6a2f340ec0
trim buffers before recycling
2013-08-21 20:28:54 +02:00
bgallagher
fb619f2394
fix writability callback
2013-08-21 16:39:50 +02:00
Norman Maurer
217b8e255c
[ #1763 ] Fill ChannelOutboundBuffer.nioBuffers with null on close to allow the content to be GC'ed
2013-08-20 21:15:05 +02:00
Trustin Lee
15cfa47ad9
Fix checkstyle
2013-08-20 14:40:28 +09:00
Trustin Lee
caf91b9c06
Fix IllegalStateException triggered while shutting down ThreadPerChannelEventLoopGroup
...
- Fix #1718
- Add the test case contributed by @mkw
2013-08-20 14:37:57 +09:00
bgallagher
a383988cdb
add struct to replace parallel arrays consolidate flushed & unflushed buffers
2013-08-18 19:19:57 +02:00
bgallagher
06e250e493
remove unused initialCapacity
2013-08-17 14:10:33 +02:00
bgallagher
9f88552f12
remove some dead code
2013-08-10 20:46:48 +02:00
Norman Maurer
280afda013
[ #1715 ] Remove extra call socket.configureBlocking(false)
2013-08-10 20:33:19 +02:00
bgallagher
59c2fd8813
[ #1723 ] invoke close in eventloop
2013-08-10 08:19:16 +02:00
Norman Maurer
9d8c4ded50
Move method in correct scope
2013-08-09 13:30:04 +02:00
Norman Maurer
4d0621855a
Remove unused package private method and so remove some complexity
2013-08-09 11:44:41 +02:00
Norman Maurer
b54937ab50
[ #1711 ] Allow to use ChannelOption for set / get MessageSizeEstimator
2013-08-08 20:37:35 +02:00
Norman Maurer
f40a3f34b1
[ #1692 ] Allow to set WRITE_BUFFER_HIGH_WATER_MARK and WRITE_BUFFER_LOW_WATER_MARK via ChannelOption
2013-08-08 20:30:01 +02:00
Norman Maurer
1d3560e389
[maven-release-plugin] prepare for next development iteration
2013-08-08 13:53:28 +02:00
Norman Maurer
8e97e6c461
[maven-release-plugin] prepare release netty-4.0.7.Final
2013-08-08 13:53:19 +02:00
Norman Maurer
fc6213604d
Make sure ChannelOutboundBuffer not throw NPE during increment/decrement pending writes
2013-08-08 13:42:25 +02:00
Norman Maurer
b934b6009c
Share some code, related to [ #1707 ]]
2013-08-07 20:28:33 +02:00
Norman Maurer
5ef30b6d8b
[ #1707 ] More efficient implementation of ChannelHandlerContext.writeAndFlush(..)
2013-08-07 20:15:10 +02:00
Norman Maurer
5b6e762bf4
Allow to have the Channel GC'ed ASAP
2013-08-07 10:32:03 +02:00
Norman Maurer
48a7a21541
Correctly update Channel.isWritable() when the write happens from outside the EventLoop in a fast fashion. Fixes [ #1697 ]
...
Introduce a new interface called MessageSizeEstimator. This can be specific per Channel (via ChannelConfig). The MessageSizeEstimator will be used to estimate for a message that should be written. The default implementation handles ByteBuf, ByteBufHolder and FileRegion. A user is free to plug-in his/her own implementation for different behaviour.
2013-08-07 10:10:43 +02:00
Norman Maurer
de44917e62
Use recyclable write task to reduce GC pressure
2013-08-05 14:59:58 +02:00
Trustin Lee
17b91f416d
Remove an irrelevant comment
...
.. because firedChannelActive is gone long ago
2013-08-05 16:50:25 +09:00
Norman Maurer
3f2000fa3a
[maven-release-plugin] prepare for next development iteration
2013-08-01 10:59:55 +02:00
Norman Maurer
3f70d5caa4
[maven-release-plugin] prepare release netty-4.0.6.Final
2013-08-01 10:59:46 +02:00
Norman Maurer
a06295fe0a
Correctly fix problem in ByteToMessageDecoder and ReplayingDecoder which could let to have a released buffer passed to the decode methods.
...
This fixes #1664 and revert also the original commit which was meant to fix it 3b1881b523
. The problem with the original commit was that it could delay handlerRemove(..) calls and so mess up the order or forward bytes to late.
2013-08-01 09:54:07 +02:00
Norman Maurer
e3410680de
[maven-release-plugin] prepare for next development iteration
2013-07-31 20:08:14 +02:00
Norman Maurer
0e124583d6
[maven-release-plugin] prepare release netty-4.0.5.Final
2013-07-31 20:08:05 +02:00
Trustin Lee
81de2275e4
Remove unnecessary traversal of pipeline which occurs when a Channel is closed
...
- Remove unnecessary ascending traversal of pipeline in DefaultChannelHandlerContext.freeInbound()
- Move DefaultChannelHandlerContext.teardownAll() to DefaultChannelPipeline
2013-07-31 20:45:37 +09:00
Trustin Lee
3b1881b523
Make sure ChannelHandler.handlerRemoved() is invoked while handler methods are not running
...
- Fixes #1664
2013-07-31 20:35:51 +09:00
Norman Maurer
3049f5ddc4
Fix checkstyle
2013-07-31 12:21:50 +02:00
Trustin Lee
c79a3cdefe
Fix a bug in NioSocketChannel.doWrite() where flush() triggered from a ChannelFutureListener is ignored
...
- Fixes #1679
2013-07-31 19:13:45 +09:00
Norman Maurer
ca29f1a37d
[ #1683 ] Mark unused ChannelOption @deprecated, to prepare for removal in 4.1.0.Final
2013-07-31 10:50:39 +02:00
Trustin Lee
e81368af06
Simplify handler invocations in DefaultChannelHandlerContext
...
- Sometimes we delegated executor.inEventLoop() to the next context and sometimes we did not. Now we always check inEventLoop() before delegating.
2013-07-31 16:34:32 +09:00
Norman Maurer
e09aea5902
Rename methods of EmbeddedChannel and mark old ones as @deprecated
2013-07-31 16:04:08 +09:00
Jeff Pinner
3922c518cd
Clean up AbstractUnsafe#bind and AbstractUnsafe#disconnect.
2013-07-29 06:54:42 +02:00