This PR breaks ConnectionPool's functionality out into two pools:
EventLoopGroupConnectionPool
EventLoopConnectionPool
EventLoopGroupConnectionPool is thread-safe and creates one EventLoopConnectionPool per event loop on a group. EventLoopConnectionPool is not thread-safe and is expected to be used only from its event loop.
By separating this functionality out into two pools, each implementation is simpler and easier to reason about while allowing for users to choose which behavior they would like.
This PR breaks
ConnectionPool
's functionality out into two pools:EventLoopGroupConnectionPool
EventLoopConnectionPool
EventLoopGroupConnectionPool
is thread-safe and creates oneEventLoopConnectionPool
per event loop on a group.EventLoopConnectionPool
is not thread-safe and is expected to be used only from its event loop.By separating this functionality out into two pools, each implementation is simpler and easier to reason about while allowing for users to choose which behavior they would like.