fix: dismiss all sheets created by RCTDevLoadingView
when hide
is called
#2448
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.
Summary:
We've had a recurring bug where
RCTDevLoadingView
stick around blocking the whole app even after it's dismissed. As far as I can tell, this is a race condition where we have multiple devloadingviews at once (each setting and nilling the sameself->_window
property), which is causing a race condition. Rather than figure out how to make this class only ever show one window or race-safe, for now I will just make sure to dismiss all sheets whenhide
is called.While we're at it, a couple of other changes:
NSPanel
toNSWindow
. Panels don't release when closed, which may be causing them to stick around longer than we likemainWindow
into the iOS ifdef, and remove the diffs and diff tag around it.Test Plan:
Initial testing shows RNTester no longer getting blocked. It could still happen (race conditions are hard), but I think the change is safe to add regardless.