feat: implement terminate_pool/2 callback #38
Merged
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.
As mentioned on #37, in order to implement pool telemetry features on nimble_pool clients would be nice to have some callback regarding pool termination.
The implementation is very straight forward but I'm not sure if the changes that I made to the tests are the best approach.
I had to always accept terminate_pool as a valid instruction.
The stateless is tricky, because this callback does not have access to worker state and therefore I need to work around this by introspecting into pool_state it self and if more complex use cases must be tested we gonna need another work around to update the remaining instructions.
The stateful implementation I think is ok, because terminate_pool is valid only when there is no more instructions and also there is no need for a workaround on the worker state.
Let me know what you think! Thanks in advance! 😃