diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java index d07d4ae28a2..c9ce7e56e6d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java @@ -65,9 +65,21 @@ public class ReactContext extends ContextWrapper { mCatalystInstance = catalystInstance; ReactQueueConfiguration queueConfig = catalystInstance.getReactQueueConfiguration(); - mUiMessageQueueThread = queueConfig.getUIQueueThread(); - mNativeModulesMessageQueueThread = queueConfig.getNativeModulesQueueThread(); - mJSMessageQueueThread = queueConfig.getJSQueueThread(); + initializeMessageQueueThreads(queueConfig); + } + + /** + * Initialize message queue threads using a ReactQueueConfiguration. + * TODO (janzer) T43898341 Make this package instead of public + */ + public void initializeMessageQueueThreads(ReactQueueConfiguration queueConfig) { + if (mUiMessageQueueThread == null && mNativeModulesMessageQueueThread == null && mJSMessageQueueThread == null) { + mUiMessageQueueThread = queueConfig.getUIQueueThread(); + mNativeModulesMessageQueueThread = queueConfig.getNativeModulesQueueThread(); + mJSMessageQueueThread = queueConfig.getJSQueueThread(); + } else { + throw new IllegalStateException("Message queue threads already initialized"); + } } public void resetPerfStats() {