hook up gating to shared native module queue (#41043)

Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41043

Changelog: [Internal]

in this change, we create an config pipeline to set `_enableSharedModuleQueue` in TMM

Reviewed By: cipolleschi

Differential Revision: D50398636

fbshipit-source-id: cd8c210ad2ae4774ceb10130a8b80e500d17986a
This commit is contained in:
Phillip Pan
2023-10-20 18:22:20 -07:00
committed by Facebook GitHub Bot
parent a337fcac5f
commit 5ff4558495
3 changed files with 17 additions and 1 deletions
@@ -57,6 +57,10 @@ void RCTEnableTurboModuleInteropBridgeProxy(BOOL enabled);
BOOL RCTTurboModuleSyncVoidMethodsEnabled(void);
void RCTEnableTurboModuleSyncVoidMethods(BOOL enabled);
// Use a shared queue for executing module methods
BOOL RCTTurboModuleSharedQueueEnabled(void);
void RCTEnableTurboModuleSharedQueue(BOOL enabled);
typedef enum {
kRCTBridgeProxyLoggingLevelNone,
kRCTBridgeProxyLoggingLevelWarning,
@@ -150,6 +150,18 @@ void RCTEnableTurboModuleSyncVoidMethods(BOOL enabled)
gTurboModuleEnableSyncVoidMethods = enabled;
}
// Use a shared queue for executing module methods
static BOOL gTurboModuleEnableSharedQueue = NO;
BOOL RCTTurboModuleSharedQueueEnabled(void)
{
return gTurboModuleEnableSharedQueue;
}
void RCTEnableTurboModuleSharedQueue(BOOL enabled)
{
gTurboModuleEnableSharedQueue = enabled;
}
@interface RCTBridge () <RCTReloadListener>
@end
@@ -224,7 +224,7 @@ static Class getFallbackClassFromName(const char *name)
_bridgeProxy = bridgeProxy;
_bridgeModuleDecorator = bridgeModuleDecorator;
_invalidating = false;
_enableSharedModuleQueue = NO;
_enableSharedModuleQueue = RCTTurboModuleSharedQueueEnabled();
if (_enableSharedModuleQueue) {
_sharedModuleQueue = dispatch_queue_create("com.meta.react.turbomodulemanager.queue", DISPATCH_QUEUE_SERIAL);