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.
A few months back, me and a few people on the MotorTrend team noticed a crash being reported on Crashlytics.
It was coming from this library in this file in the request timeout handler. I believe there was some kind of a race condition making it possible for the 'self' in the closure to be nil when the closure ran.
We made this change in a forked version of our PlayKit_IMA library, and the crash disappeared from Crashlytics, never to return again.
It appears as though your team has made similar changes to the iOS PlayKit library, fixing crashes that likely resulted from declaring the self in a capture list as unowned. Since self can be nil when the closure gets called, it should be declared weak in the capture list.
I just wanted to point out this issue on the PlayKit_IMA library and how our team fixed it.