a322addb17
Motivation: In certain scenarios mutliple concurrent AbstractChannelPoolMap operations might be called from event loops that handle also ChannelPool close operations. If the map uses synchronous close it could end up blocking the event loop and if multiple threads are waiting for each other a deadlock might occur. Modifications: Previously #9226 introduced a closeAsync operation for FixedChannelPool, which is now extended to SimpleChannelPool class. The AbstractChannelPoolMap now uses the closeAsync operations when closing redundant or removed SimpleChannelPool instances. Result: The AbstractChannelPoolMap get/remove operations will not wait until the pools are closed as they will happen asynchronously and avoid situations that could cause the event loop being blocked in deadlocks. |
||
---|---|---|
.. | ||
src | ||
pom.xml |