Move TurboModuleManager initialization into createReactContext

Summary:
TurboModuleManager was initialized in `ReactInstanceManager.setupReactContext`, which is executed on the NativeModule thread after we call `ReactInstanceManager.createReactContext` on a new thread. `NativeModuleRegistry` is initialized in `ReactInstanceManager.createReactContext`, so if someone requests a TurboModule after `ReactInstanceManager.createReactContext` is called and before `ReactInstanceManager.setupReactContext` fully finishes executing, that TurboModule won't be found.

This diff moves TurboModuleManager initialization into `ReactInstanceManager.createReactContext`

Reviewed By: fkgozali

Differential Revision: D15978486

fbshipit-source-id: 734e83eced414e545fe275e9a124d0df35204c40
This commit is contained in:
Ramanpreet Nara
2019-06-25 09:41:32 -07:00
committed by Facebook Github Bot
parent f9ecce7440
commit bbc6695afc
@@ -1009,9 +1009,6 @@ public class ReactInstanceManager {
catalystInstance.initialize();
if (ReactFeatureFlags.useTurboModules) {
catalystInstance.setTurboModuleManager(catalystInstance.getJSIModule(JSIModuleType.TurboModuleManager));
}
mDevSupportManager.onNewReactContextCreated(reactContext);
mMemoryPressureRouter.addMemoryPressureListener(catalystInstance);
@@ -1178,6 +1175,10 @@ public class ReactInstanceManager {
reactContext.initializeWithInstance(catalystInstance);
if (ReactFeatureFlags.useTurboModules && mJSIModulePackage != null) {
catalystInstance.setTurboModuleManager(catalystInstance.getJSIModule(JSIModuleType.TurboModuleManager));
}
return reactContext;
}