hook up enable_sync_void_methods_ios mc param

Summary:
Changelog: [Internal]

sync void execution is now hooked up to mc

Reviewed By: mdvacca

Differential Revision: D49854130

fbshipit-source-id: fb4241b11a80d44318b382e2757fe7fcbfba4fb1
This commit is contained in:
Phillip Pan
2023-10-04 16:26:58 -07:00
committed by Facebook GitHub Bot
parent b401fabbc1
commit d0b28580ee
3 changed files with 34 additions and 15 deletions
+21 -13
View File
@@ -31,25 +31,31 @@
*/
typedef NSArray<id<RCTBridgeModule>> * (^RCTBridgeModuleListProvider)(void);
RCT_EXTERN_C_BEGIN
/**
* This function returns the module name for a given class.
*/
RCT_EXTERN NSString *RCTBridgeModuleNameForClass(Class bridgeModuleClass);
NSString *RCTBridgeModuleNameForClass(Class bridgeModuleClass);
/**
* Experimental.
* Check/set if JSI-bound NativeModule is enabled. By default it's off.
*/
RCT_EXTERN BOOL RCTTurboModuleEnabled(void);
RCT_EXTERN void RCTEnableTurboModule(BOOL enabled);
BOOL RCTTurboModuleEnabled(void);
void RCTEnableTurboModule(BOOL enabled);
// Turn on TurboModule interop
RCT_EXTERN BOOL RCTTurboModuleInteropEnabled(void);
RCT_EXTERN void RCTEnableTurboModuleInterop(BOOL enabled);
BOOL RCTTurboModuleInteropEnabled(void);
void RCTEnableTurboModuleInterop(BOOL enabled);
// Turn on TurboModule interop's Bridge proxy
RCT_EXTERN BOOL RCTTurboModuleInteropBridgeProxyEnabled(void);
RCT_EXTERN void RCTEnableTurboModuleInteropBridgeProxy(BOOL enabled);
BOOL RCTTurboModuleInteropBridgeProxyEnabled(void);
void RCTEnableTurboModuleInteropBridgeProxy(BOOL enabled);
// Turn on TurboModule sync execution of void methods
BOOL RCTTurboModuleSyncVoidMethodsEnabled(void);
void RCTEnableTurboModuleSyncVoidMethods(BOOL enabled);
typedef enum {
kRCTBridgeProxyLoggingLevelNone,
@@ -57,12 +63,12 @@ typedef enum {
kRCTBridgeProxyLoggingLevelError,
} RCTBridgeProxyLoggingLevel;
RCT_EXTERN RCTBridgeProxyLoggingLevel RCTTurboModuleInteropBridgeProxyLogLevel(void);
RCT_EXTERN void RCTSetTurboModuleInteropBridgeProxyLogLevel(RCTBridgeProxyLoggingLevel logLevel);
RCTBridgeProxyLoggingLevel RCTTurboModuleInteropBridgeProxyLogLevel(void);
void RCTSetTurboModuleInteropBridgeProxyLogLevel(RCTBridgeProxyLoggingLevel logLevel);
// Route all TurboModules through TurboModule interop
RCT_EXTERN BOOL RCTTurboModuleInteropForAllTurboModulesEnabled(void);
RCT_EXTERN void RCTEnableTurboModuleInteropForAllTurboModules(BOOL enabled);
BOOL RCTTurboModuleInteropForAllTurboModulesEnabled(void);
void RCTEnableTurboModuleInteropForAllTurboModules(BOOL enabled);
typedef enum {
kRCTGlobalScope,
@@ -70,8 +76,10 @@ typedef enum {
kRCTTurboModuleManagerScope,
} RCTTurboModuleCleanupMode;
RCT_EXTERN RCTTurboModuleCleanupMode RCTGetTurboModuleCleanupMode(void);
RCT_EXTERN void RCTSetTurboModuleCleanupMode(RCTTurboModuleCleanupMode mode);
RCTTurboModuleCleanupMode RCTGetTurboModuleCleanupMode(void);
void RCTSetTurboModuleCleanupMode(RCTTurboModuleCleanupMode mode);
RCT_EXTERN_C_END
/**
* Async batched bridge used to communicate with the JavaScript application.
@@ -139,6 +139,17 @@ void RCTEnableTurboModuleInteropForAllTurboModules(BOOL enabled)
useTurboModuleInteropForAllTurboModules = enabled;
}
// Turn on TurboModule sync execution of void methods
static BOOL gTurboModuleEnableSyncVoidMethods = NO;
BOOL RCTTurboModuleSyncVoidMethodsEnabled(void)
{
return gTurboModuleEnableSyncVoidMethods;
}
void RCTEnableTurboModuleSyncVoidMethods(BOOL enabled)
{
gTurboModuleEnableSyncVoidMethods = enabled;
}
@interface RCTBridge () <RCTReloadListener>
@end
@@ -375,7 +375,7 @@ static Class getFallbackClassFromName(const char *name)
.jsInvoker = _jsInvoker,
.nativeMethodCallInvoker = nativeMethodCallInvoker,
.isSyncModule = methodQueue == RCTJSThread,
.shouldVoidMethodsExecuteSync = false,
.shouldVoidMethodsExecuteSync = RCTTurboModuleSyncVoidMethodsEnabled(),
};
auto turboModule = [(id<RCTTurboModule>)module getTurboModule:params];
@@ -438,7 +438,7 @@ static Class getFallbackClassFromName(const char *name)
.jsInvoker = _jsInvoker,
.nativeMethodCallInvoker = std::move(nativeMethodCallInvoker),
.isSyncModule = methodQueue == RCTJSThread,
.shouldVoidMethodsExecuteSync = false,
.shouldVoidMethodsExecuteSync = RCTTurboModuleSyncVoidMethodsEnabled(),
};
auto turboModule = std::make_shared<ObjCInteropTurboModule>(params);