netty5/common/src/main/java/io/netty/util
Aniket Bhatnagar 3f20b8adee Added optional pending timeouts counter parameter to HashedWheelTimer constructor and ensured that pending timeouts don't exceed provided max pending timeouts.
Motivation:
If the rate at which new timeouts are created is very high and the created timeouts are not cancelled, then the JVM can crash because of out of heap space. There should be a guard in the implementation to prevent this.

Modifications:
The constructor of HashedWheelTimer now takes an optional max pending timeouts parameter beyond which it will reject new timeouts by throwing RejectedExecutionException.

Result:
After this change, if the max pending timeouts parameter is passed as constructor argument to HashedWheelTimer, then it keeps a track of pending timeouts that aren't yet expired or cancelled. When a new timeout is being created, it checks for current pending timeouts and if it's equal to or greater than provided max pending timeouts, then it throws RejectedExecutionException.
2016-11-09 10:58:35 +01:00
..
concurrent Clean-up unused imports 2016-09-30 09:08:50 +02:00
internal Unable to initialize PlatformDependent when sun.misc.Unsafe is unavailable 2016-11-08 17:08:17 +01:00
AbstractConstant.java Improvement: simplified AbstractConstant compareTo. 2016-08-03 09:53:49 +02:00
AbstractReferenceCounted.java Share code between retain(...) and release(...) implementations. 2016-09-02 21:53:10 +02:00
AsciiString.java Cleanup inappropriate @throws javadoc of some AsciiString util methods 2016-11-04 15:37:16 +01:00
AsyncMapping.java Allow to do async mappings in the SniHandler 2016-01-18 21:02:13 +01:00
Attribute.java [#4351] Add warnings for Attribute.remove() and Attribute.getAndRemove() 2016-07-29 15:12:36 +02:00
AttributeKey.java Fix errors reported by javadoc 2015-12-27 08:36:45 +01:00
AttributeMap.java Better implementation of AttributeMap and also add hasAttr(...). SeeĀ [#2439] 2014-05-15 06:47:42 +02:00
BooleanSupplier.java DefaultHttp2Connection.close Reentrant Modification 2016-05-09 14:16:30 -07:00
ByteProcessor.java HttpConversionUtil remove throws from method signature 2016-01-15 10:53:34 +01:00
CharsetUtil.java Add CharsetUtil.encoder/decoder() methods 2016-03-07 10:48:31 +00:00
Constant.java Replace UniqueName with Constant and ConstantPool 2014-02-13 15:14:34 -08:00
ConstantPool.java Improvement : constant pool now less concurrent 2016-08-04 08:22:37 +02:00
DefaultAttributeMap.java Ensure attributes and contained object can be collected as fast as possible. 2016-07-24 20:31:39 +02:00
DomainMappingBuilder.java Replace DomainMappingBuilder with DomainNameMappingBuilder 2016-05-18 12:03:14 +02:00
DomainNameMapping.java Fix NPE when creating DomainNameMapping via a builder 2016-05-18 19:26:28 +09:00
DomainNameMappingBuilder.java Replace DomainMappingBuilder with DomainNameMappingBuilder 2016-05-18 12:03:14 +02:00
HashedWheelTimer.java Added optional pending timeouts counter parameter to HashedWheelTimer constructor and ensured that pending timeouts don't exceed provided max pending timeouts. 2016-11-09 10:58:35 +01:00
HashingStrategy.java Removed unused imports 2016-01-04 14:32:29 +01:00
IllegalReferenceCountException.java ReferenceCountException -> IllegalReferenceCountException 2013-06-13 14:00:15 +09:00
IntSupplier.java Allow to customize NIO (channel) select strategies. 2016-03-30 15:01:25 -07:00
Mapping.java Overall clean-up of the initial SniHandler/DomainNameMapping work 2014-12-04 18:23:07 +09:00
NetUtil.java NetUtil.bytesToIpAddress bug 2016-09-22 17:06:21 -07:00
package-info.java Remove apiviz tags - we are focusing on user guide instead and putting diagrams there 2013-02-14 12:09:16 -08:00
Recycler.java Ensure people are aware recycler capacity is per thread. 2016-08-08 11:00:26 +02:00
ReferenceCounted.java Enable a user specify an arbitrary information with ReferenceCounted.touch() 2014-02-13 18:16:25 -08:00
ReferenceCountUtil.java Port ChannelOutboundBuffer and related changes from 4.0 2014-08-05 15:00:45 +02:00
ResourceLeak.java Enable a user specify an arbitrary information with ReferenceCounted.touch() 2014-02-13 18:16:25 -08:00
ResourceLeakDetector.java reduce lock contention in resource leak 2016-11-02 08:14:48 +01:00
ResourceLeakDetectorFactory.java Use ResourceLeakDetectorFactory in HashedWheelTimer 2016-06-29 21:07:17 +02:00
ResourceLeakException.java Ensure backward compatibility 2013-12-05 01:02:38 +09:00
ResourceLeakHint.java Enable a user specify an arbitrary information with ReferenceCounted.touch() 2014-02-13 18:16:25 -08:00
Signal.java Fix a bug where AbstractConstant.compareTo() returns 0 for different constants 2014-07-29 15:01:47 -07:00
ThreadDeathWatcher.java Non-sticky thread groups in DefaultThreadFactory 2016-07-14 22:06:40 +02:00
Timeout.java Simpler method naming in Timeout 2012-12-26 13:50:01 +09:00
Timer.java Added optional pending timeouts counter parameter to HashedWheelTimer constructor and ensured that pending timeouts don't exceed provided max pending timeouts. 2016-11-09 10:58:35 +01:00
TimerTask.java Update license headers 2012-06-04 13:31:44 -07:00
Version.java Fix most inspector warnings 2014-07-02 19:55:07 +09:00