Ensure ConnectionPool.triggerForceShutdown() works and that it doesn't shutdown until all connections are closed
#607
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes
ConnectionPool.triggerForceShutdown()so that it actually shuts down the connection pool and therun()method returns.I renamed the
shutdownconnection pool action toinitiateShutdownand added a new actionshutdown. TheinitiateShutdownaction will close all the connections and related timers and is returned bytriggerForceShutdown. Theshutdownaction will finish the eventStream thus allowing therunmethod to return. TheconnectionClosedmethod will return theshutdownaction once the connections array is empty. There is also support for dealing with connections that are established aftertriggerForceShutdownis called which wasn't there before.I have also added tests for the state machine, for when connections are idle, leased or a connection request is in process. And a single ConnectionPool test that checks
triggerForceShutdownactually causes therunmethod to return.Ensure
ConnectionPool.triggerForceShutdownworks and that it doesn't shutdown until all connections are closed