mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Set up experiment to dispatch promise methods asynchronously to NativeModules thread
Summary: TurboModule methods that return promises are synchronously run on the JavaScript thread. Back in D22489338 (https://github.com/facebook/react-native/commit/9c35b5b8c4710dfe6a4b689a5565aa78ae5b37d3), we wrote code to make them dispatch on the NativeModules thread. That code, however, was just left disabled. In this diff, I wire up the TurboModules infra to a MobileConfig, which should allow us to assess the performance impact of async dispatch of promise methods to the NativeModules thread in production, before we roll it out more widely. Changelog: [Internal] Reviewed By: fkgozali Differential Revision: D24685389 fbshipit-source-id: 8ceb2e6effc125abecfa76e5e90bd310676aefc9
This commit is contained in:
committed by
Facebook GitHub Bot
parent
1ee406b9cc
commit
052e578ed6
@@ -23,6 +23,9 @@ public class ReactFeatureFlags {
|
||||
*/
|
||||
public static volatile boolean useTurboModules = false;
|
||||
|
||||
/** Should we dispatch TurboModule methods with promise returns to the NativeModules thread? */
|
||||
public static volatile boolean enableTurboModulePromiseAsyncDispatch = false;
|
||||
|
||||
/*
|
||||
* This feature flag enables logs for Fabric
|
||||
*/
|
||||
|
||||
+2
-1
@@ -17,6 +17,7 @@ import com.facebook.react.bridge.CxxModuleWrapper;
|
||||
import com.facebook.react.bridge.JSIModule;
|
||||
import com.facebook.react.bridge.JavaScriptContextHolder;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.config.ReactFeatureFlags;
|
||||
import com.facebook.react.turbomodule.core.interfaces.CallInvokerHolder;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModule;
|
||||
import com.facebook.react.turbomodule.core.interfaces.TurboModuleRegistry;
|
||||
@@ -60,7 +61,7 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry {
|
||||
(CallInvokerHolderImpl) jsCallInvokerHolder,
|
||||
(CallInvokerHolderImpl) nativeCallInvokerHolder,
|
||||
delegate,
|
||||
false);
|
||||
ReactFeatureFlags.enableTurboModulePromiseAsyncDispatch);
|
||||
installJSIBindings();
|
||||
|
||||
mEagerInitModuleNames =
|
||||
|
||||
Reference in New Issue
Block a user