netty5/common/src/main/java/io/netty/util
Norman Maurer f58d074caf Tighten up contract of PromiseCombiner and so make it more safe to use (#8886)
Motivation:

PromiseCombiner is not thread-safe and even assumes all added Futures are using the same EventExecutor. This is kind of fragile as we do not enforce this. We need to enforce this contract to ensure it's safe to use and easy to spot concurrency problems.

Modifications:

- Add new contructor to PromiseCombiner that takes an EventExecutor and deprecate the old non-arg constructor.
- Check if methods are called from within the EventExecutor thread and if not fail
- Correctly dispatch on the right EventExecutor if the Future uses a different EventExecutor to eliminate concurrency issues.

Result:

More safe use of PromiseCombiner + enforce correct usage / contract.
2019-02-28 20:39:37 +01:00
..
concurrent Tighten up contract of PromiseCombiner and so make it more safe to use (#8886) 2019-02-28 20:39:37 +01:00
internal Log the shaded form of native workdir system property (#8867) 2019-02-14 15:19:08 -08:00
AbstractConstant.java Improvement: simplified AbstractConstant compareTo. 2016-08-03 09:53:49 +02:00
AbstractReferenceCounted.java Harden ref-counting concurrency semantics (#8583) 2018-11-29 08:32:50 +01:00
AsciiString.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +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 Java 8 migration: Use diamond operator (#8749) 2019-01-22 16:07:26 +01:00
AttributeMap.java Better implementation of AttributeMap and also add hasAttr(...). SeeĀ [#2439] 2014-05-15 06:47:42 +02:00
BooleanSupplier.java migrate java8: use lambda and method reference (#8781) 2019-01-29 14:06:05 +01:00
ByteProcessor.java migrate java8: use lambda and method reference (#8781) 2019-01-29 14:06:05 +01:00
ByteProcessorUtils.java HttpResponseStatus object allocation reduction 2018-01-24 22:01:52 -08:00
CharsetUtil.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
Constant.java Replace UniqueName with Constant and ConstantPool 2014-02-13 15:14:34 -08:00
ConstantPool.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
DefaultAttributeMap.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
DomainMappingBuilder.java Java 8 migration: Use diamond operator (#8749) 2019-01-22 16:07:26 +01:00
DomainNameMapping.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
DomainNameMappingBuilder.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
HashedWheelTimer.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01:00
HashingStrategy.java Fix minor spelling issues in javadocs (#8701) 2019-01-14 07:25:13 +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
NettyRuntime.java Enable configuring available processors 2017-04-23 10:31:17 +02:00
NetUtil.java migrate java8: use lambda and method reference (#8781) 2019-01-29 14:06:05 +01: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 migrate java8: use lambda and method reference (#8781) 2019-01-29 14:06:05 +01:00
ReferenceCounted.java fix the typos 2017-04-20 04:56:09 +02:00
ReferenceCountUtil.java Motivation: Resource Leak Detector (RLD) tries to helpfully indicate where an object was last accessed and report the accesses in the case the object was not cleaned up. It handles lightly used objects well, but drops all but the last few accesses. 2017-10-19 12:21:21 -07:00
ResourceLeak.java Fix false-positives when using ResourceLeakDetector. 2016-12-04 09:01:39 +01:00
ResourceLeakDetector.java Legacy properties removed (#8839) 2019-02-04 13:56:15 +01:00
ResourceLeakDetectorFactory.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01: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
ResourceLeakTracker.java Fix false-positives when using ResourceLeakDetector. 2016-12-04 09:01:39 +01:00
Signal.java Fix a bug where AbstractConstant.compareTo() returns 0 for different constants 2014-07-29 15:01:47 -07:00
SuppressForbidden.java Enable configuring available processors 2017-04-23 10:31:17 +02:00
ThreadDeathWatcher.java migrate java8: use requireNonNull (#8840) 2019-02-04 10:32:25 +01: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
UncheckedBooleanSupplier.java migrate java8: use lambda and method reference (#8781) 2019-01-29 14:06:05 +01:00
Version.java Java 8 migration: Use diamond operator (#8749) 2019-01-22 16:07:26 +01:00