fix: prevent hanging if stop called from multiple threads #554
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.
Description
There are certain cases when
StopAsync
is called multiple times on different threads, which presents itself as theStopAsync
call hanging indefinitely. This change adds thread protection to ensure thatStopAsync
is only called once.An example of when this occurs is here when using WebApplicationFactory<> for testing.
How Has This Been Tested?
I've run this in a local unit test scenario against a real Kafka instance to ensure that the teardown is clean and handles multiple concurrent calls to
StopAsync
.Checklist
Disclaimer
By sending us your contributions, you are agreeing that your contribution is made subject to the terms of our Contributor Ownership Statement