14a820d5fa
Motiviation: A lot of reentrancy bugs and cycles can happen because the DefaultPromise will notify the FutureListener directly when completely in the calling Thread if the Thread is the EventExecutor Thread. To reduce the risk of this we should always notify the listeners via the EventExecutor which basically means that we will put a task into the taskqueue of the EventExecutor and pick it up for execution after the setSuccess / setFailure methods complete the promise. Modifications: - Always notify via the EventExecutor - Adjust test to ensure we correctly account for this - Adjust tests that use the EmbeddedChannel to ensure we execute the scheduled work. Result: Reentrancy bugs related to the FutureListeners cant happen anymore. |
||
---|---|---|
.. | ||
src | ||
pom.xml |