Wrap _listeners access with _realtimeLockQueue in fetchLatestConfig completionHandler #13776
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.
Hey there! So you want to contribute to a Firebase SDK?
Before you file this pull request, please read these guidelines:
Discussion
Issue: #13773
I did not copy the listeners nor use DispatchQueue.sync to keep the same logic and style of code.
Testing
This change solves data-racing issue when listener can be added at same time when it is enumerated in completion handler.
Please suggest me If I need to add test for this and what would be the best approach for unit testing this?
I can try to add a 1s-2s loop that will add listeners and, in parallel, call config update.
API Changes
us make Firebase APIs better, please propose your change in a feature request so that we
can discuss it together.