react-native
react-native copied to clipboard
Fix HeadlessJsTaskContext creating Handler on background thread
Summary:
D54496604 fixed lifecycle methods for JavaTimerManager, which now reveals another bug. Because this codepath ends up creating a HeadlessJsTaskContext
which in turn creates a Handler
, ReactInstance destruction doesn't complete cleanly.
2024-05-15 17:42:52.935 12681 27113 W fb4a.BridgelessReact: ReactHost{1}.getOrCreateDestroyTask(): React destruction failed. ReactInstance task faulted. Fault reason: Can't create handler inside thread Thread[pool-51-thread-1,5,main] that has not called Looper.prepare(). Destroy reason: FbReactInstanceHolder.destroyReactManager(): FbReactInstanceLogoutCleaner.clearReactInstanceData()
The fix is to not create our own Handler, but instead use the shared methods in UiThreadUtil.
Differential Revision: D57378247
This pull request was exported from Phabricator. Differential Revision: D57378247
This pull request was exported from Phabricator. Differential Revision: D57378247
Platform | Engine | Arch | Size (bytes) | Diff |
---|---|---|---|---|
android | hermes | arm64-v8a | 19,526,129 | -17 |
android | hermes | armeabi-v7a | n/a | -- |
android | hermes | x86 | n/a | -- |
android | hermes | x86_64 | n/a | -- |
android | jsc | arm64-v8a | 22,896,050 | +2 |
android | jsc | armeabi-v7a | n/a | -- |
android | jsc | x86 | n/a | -- |
android | jsc | x86_64 | n/a | -- |
Base commit: 524e3eec3e73f56746ace8bef569f36802a7a62e Branch: main
This pull request has been merged in facebook/react-native@e67d5560cfd35f07ce74cfcc12555346a6f0e865.
This pull request was successfully merged by @javache in e67d5560cfd35f07ce74cfcc12555346a6f0e865.
When will my fix make it into a release? | How to file a pick request?