Bugfix-FXIOS-8420 Fix for Retain Cycle in all Function for Deferred<T> Aggregation #18669
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.
馃摐 Tickets
Jira Ticket
Github issue
馃挕 Description
Refactored the original implementation's recursive closure calls that introduced a potential for retain cycles, leading to memory leaks as attached in GitHub issue. The revised approach utilizes a non-recursive helper function,
processNext
, to process each Deferred object and append its result to an aggregate array. This method ensures that all Deferred objects are processed without retaining strong references that could prevent the Deferred objects and their associated closures from being deallocated.Verified that no leaks exist after this refactoring. Check the resulting leak dump here which does not have any report referencing paths of ContentBlocker file.
馃摑 Checklist
You have to check all boxes before merging