mirror of
https://github.com/status-im/react-native.git
synced 2025-02-05 22:23:37 +00:00
Remove android_react_native_perf.use_separate_ui_bg_thread experiment.
Reviewed By: AaaChiuuu Differential Revision: D6313250 fbshipit-source-id: 583a729a157a2053827631a43e38917753e78477
This commit is contained in:
parent
053776338e
commit
4f886a29a1
@ -156,7 +156,6 @@ public class ReactInstanceManager {
|
||||
private final @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
|
||||
private final boolean mLazyNativeModulesEnabled;
|
||||
private final boolean mDelayViewManagerClassLoadsEnabled;
|
||||
private final boolean mUseSeparateUIBackgroundThread;
|
||||
private final int mMinNumShakes;
|
||||
|
||||
private class ReactContextInitParams {
|
||||
@ -204,7 +203,6 @@ public class ReactInstanceManager {
|
||||
boolean lazyViewManagersEnabled,
|
||||
boolean delayViewManagerClassLoadsEnabled,
|
||||
@Nullable DevBundleDownloadListener devBundleDownloadListener,
|
||||
boolean useSeparateUIBackgroundThread,
|
||||
int minNumShakes,
|
||||
int minTimeLeftInFrameForNonBatchedOperationMs) {
|
||||
Log.d(ReactConstants.TAG, "ReactInstanceManager.ctor()");
|
||||
@ -236,7 +234,6 @@ public class ReactInstanceManager {
|
||||
mNativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler;
|
||||
mLazyNativeModulesEnabled = lazyNativeModulesEnabled;
|
||||
mDelayViewManagerClassLoadsEnabled = delayViewManagerClassLoadsEnabled;
|
||||
mUseSeparateUIBackgroundThread = useSeparateUIBackgroundThread;
|
||||
mMinNumShakes = minNumShakes;
|
||||
synchronized (mPackages) {
|
||||
PrinterHolder.getPrinter()
|
||||
@ -995,15 +992,6 @@ public class ReactInstanceManager {
|
||||
Process.setThreadPriority(Process.THREAD_PRIORITY_DEFAULT);
|
||||
}
|
||||
});
|
||||
if (mUseSeparateUIBackgroundThread) {
|
||||
reactContext.runOnUiBackgroundQueueThread(
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
Process.setThreadPriority(Process.THREAD_PRIORITY_DEFAULT);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void attachRootViewToInstance(
|
||||
@ -1080,9 +1068,7 @@ public class ReactInstanceManager {
|
||||
? mNativeModuleCallExceptionHandler
|
||||
: mDevSupportManager;
|
||||
CatalystInstanceImpl.Builder catalystInstanceBuilder = new CatalystInstanceImpl.Builder()
|
||||
.setReactQueueConfigurationSpec(mUseSeparateUIBackgroundThread ?
|
||||
ReactQueueConfigurationSpec.createWithSeparateUIBackgroundThread() :
|
||||
ReactQueueConfigurationSpec.createDefault())
|
||||
.setReactQueueConfigurationSpec(ReactQueueConfigurationSpec.createDefault())
|
||||
.setJSExecutor(jsExecutor)
|
||||
.setRegistry(nativeModuleRegistry)
|
||||
.setJSBundleLoader(jsBundleLoader)
|
||||
|
@ -46,7 +46,6 @@ public class ReactInstanceManagerBuilder {
|
||||
private boolean mDelayViewManagerClassLoadsEnabled;
|
||||
private @Nullable DevBundleDownloadListener mDevBundleDownloadListener;
|
||||
private @Nullable JavaScriptExecutorFactory mJavaScriptExecutorFactory;
|
||||
private boolean mUseSeparateUIBackgroundThread;
|
||||
private int mMinNumShakes = 1;
|
||||
private int mMinTimeLeftInFrameForNonBatchedOperationMs = -1;
|
||||
|
||||
@ -214,12 +213,6 @@ public class ReactInstanceManagerBuilder {
|
||||
return this;
|
||||
}
|
||||
|
||||
public ReactInstanceManagerBuilder setUseSeparateUIBackgroundThread(
|
||||
boolean useSeparateUIBackgroundThread) {
|
||||
mUseSeparateUIBackgroundThread = useSeparateUIBackgroundThread;
|
||||
return this;
|
||||
}
|
||||
|
||||
public ReactInstanceManagerBuilder setMinNumShakes(int minNumShakes) {
|
||||
mMinNumShakes = minNumShakes;
|
||||
return this;
|
||||
@ -286,7 +279,6 @@ public class ReactInstanceManagerBuilder {
|
||||
mLazyViewManagersEnabled,
|
||||
mDelayViewManagerClassLoadsEnabled,
|
||||
mDevBundleDownloadListener,
|
||||
mUseSeparateUIBackgroundThread,
|
||||
mMinNumShakes,
|
||||
mMinTimeLeftInFrameForNonBatchedOperationMs);
|
||||
}
|
||||
|
@ -330,7 +330,7 @@ public class ReactRootView extends SizeMonitoringFrameLayout
|
||||
}
|
||||
final ReactContext reactApplicationContext = mReactInstanceManager.getCurrentReactContext();
|
||||
if (reactApplicationContext != null) {
|
||||
reactApplicationContext.runUIBackgroundRunnable(
|
||||
reactApplicationContext.runOnNativeModulesQueueThread(
|
||||
new GuardedRunnable(reactApplicationContext) {
|
||||
@Override
|
||||
public void runGuarded() {
|
||||
|
@ -83,7 +83,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
private final NativeModuleRegistry mNativeModuleRegistry;
|
||||
private final NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
|
||||
private final MessageQueueThread mNativeModulesQueueThread;
|
||||
private final @Nullable MessageQueueThread mUIBackgroundQueueThread;
|
||||
private boolean mInitialized = false;
|
||||
private volatile boolean mAcceptCalls = false;
|
||||
|
||||
@ -114,7 +113,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
mJSBundleLoader = jsBundleLoader;
|
||||
mNativeModuleCallExceptionHandler = nativeModuleCallExceptionHandler;
|
||||
mNativeModulesQueueThread = mReactQueueConfiguration.getNativeModulesQueueThread();
|
||||
mUIBackgroundQueueThread = mReactQueueConfiguration.getUIBackgroundQueueThread();
|
||||
mTraceListener = new JSProfilerTraceListener(this);
|
||||
|
||||
Log.d(ReactConstants.TAG, "Initializing React Xplat Bridge before initializeBridge");
|
||||
@ -123,7 +121,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
jsExecutor,
|
||||
mReactQueueConfiguration.getJSQueueThread(),
|
||||
mNativeModulesQueueThread,
|
||||
mUIBackgroundQueueThread,
|
||||
mNativeModuleRegistry.getJavaModules(this),
|
||||
mNativeModuleRegistry.getCxxModules());
|
||||
Log.d(ReactConstants.TAG, "Initializing React Xplat Bridge after initializeBridge");
|
||||
@ -191,7 +188,6 @@ public class CatalystInstanceImpl implements CatalystInstance {
|
||||
JavaScriptExecutor jsExecutor,
|
||||
MessageQueueThread jsQueue,
|
||||
MessageQueueThread moduleQueue,
|
||||
MessageQueueThread uiBackgroundQueue,
|
||||
Collection<JavaModuleWrapper> javaModules,
|
||||
Collection<ModuleHolder> cxxModules);
|
||||
|
||||
|
@ -44,7 +44,6 @@ public class ReactContext extends ContextWrapper {
|
||||
private @Nullable CatalystInstance mCatalystInstance;
|
||||
private @Nullable LayoutInflater mInflater;
|
||||
private @Nullable MessageQueueThread mUiMessageQueueThread;
|
||||
private @Nullable MessageQueueThread mUiBackgroundMessageQueueThread;
|
||||
private @Nullable MessageQueueThread mNativeModulesMessageQueueThread;
|
||||
private @Nullable MessageQueueThread mJSMessageQueueThread;
|
||||
private @Nullable NativeModuleCallExceptionHandler mNativeModuleCallExceptionHandler;
|
||||
@ -69,7 +68,6 @@ public class ReactContext extends ContextWrapper {
|
||||
|
||||
ReactQueueConfiguration queueConfig = catalystInstance.getReactQueueConfiguration();
|
||||
mUiMessageQueueThread = queueConfig.getUIQueueThread();
|
||||
mUiBackgroundMessageQueueThread = queueConfig.getUIBackgroundQueueThread();
|
||||
mNativeModulesMessageQueueThread = queueConfig.getNativeModulesQueueThread();
|
||||
mJSMessageQueueThread = queueConfig.getJSQueueThread();
|
||||
}
|
||||
@ -269,14 +267,6 @@ public class ReactContext extends ContextWrapper {
|
||||
Assertions.assertNotNull(mUiMessageQueueThread).runOnQueue(runnable);
|
||||
}
|
||||
|
||||
public void assertOnUiBackgroundQueueThread() {
|
||||
Assertions.assertNotNull(mUiBackgroundMessageQueueThread).assertIsOnThread();
|
||||
}
|
||||
|
||||
public void runOnUiBackgroundQueueThread(Runnable runnable) {
|
||||
Assertions.assertNotNull(mUiBackgroundMessageQueueThread).runOnQueue(runnable);
|
||||
}
|
||||
|
||||
public void assertOnNativeModulesQueueThread() {
|
||||
Assertions.assertNotNull(mNativeModulesMessageQueueThread).assertIsOnThread();
|
||||
}
|
||||
@ -305,26 +295,6 @@ public class ReactContext extends ContextWrapper {
|
||||
Assertions.assertNotNull(mJSMessageQueueThread).runOnQueue(runnable);
|
||||
}
|
||||
|
||||
public boolean hasUIBackgroundRunnableThread() {
|
||||
return mUiBackgroundMessageQueueThread != null;
|
||||
}
|
||||
|
||||
public void assertOnUIBackgroundOrNativeModulesThread() {
|
||||
if (mUiBackgroundMessageQueueThread == null) {
|
||||
assertOnNativeModulesQueueThread();
|
||||
} else {
|
||||
assertOnUiBackgroundQueueThread();
|
||||
}
|
||||
}
|
||||
|
||||
public void runUIBackgroundRunnable(Runnable runnable) {
|
||||
if (mUiBackgroundMessageQueueThread == null) {
|
||||
runOnNativeModulesQueueThread(runnable);
|
||||
} else {
|
||||
runOnUiBackgroundQueueThread(runnable);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Passes the given exception to the current
|
||||
* {@link com.facebook.react.bridge.NativeModuleCallExceptionHandler} if one exists, rethrowing
|
||||
|
@ -9,7 +9,6 @@
|
||||
|
||||
package com.facebook.react.bridge.queue;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
/**
|
||||
* Specifies which {@link MessageQueueThread}s must be used to run the various contexts of
|
||||
@ -22,8 +21,6 @@ import javax.annotation.Nullable;
|
||||
*/
|
||||
public interface ReactQueueConfiguration {
|
||||
MessageQueueThread getUIQueueThread();
|
||||
@Nullable
|
||||
MessageQueueThread getUIBackgroundQueueThread();
|
||||
MessageQueueThread getNativeModulesQueueThread();
|
||||
MessageQueueThread getJSQueueThread();
|
||||
void destroy();
|
||||
|
@ -9,8 +9,6 @@
|
||||
|
||||
package com.facebook.react.bridge.queue;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import android.os.Looper;
|
||||
@ -20,17 +18,14 @@ import com.facebook.react.common.MapBuilder;
|
||||
public class ReactQueueConfigurationImpl implements ReactQueueConfiguration {
|
||||
|
||||
private final MessageQueueThreadImpl mUIQueueThread;
|
||||
private final @Nullable MessageQueueThreadImpl mUIBackgroundQueueThread;
|
||||
private final MessageQueueThreadImpl mNativeModulesQueueThread;
|
||||
private final MessageQueueThreadImpl mJSQueueThread;
|
||||
|
||||
private ReactQueueConfigurationImpl(
|
||||
MessageQueueThreadImpl uiQueueThread,
|
||||
@Nullable MessageQueueThreadImpl uiBackgroundQueueThread,
|
||||
MessageQueueThreadImpl nativeModulesQueueThread,
|
||||
MessageQueueThreadImpl jsQueueThread) {
|
||||
MessageQueueThreadImpl uiQueueThread,
|
||||
MessageQueueThreadImpl nativeModulesQueueThread,
|
||||
MessageQueueThreadImpl jsQueueThread) {
|
||||
mUIQueueThread = uiQueueThread;
|
||||
mUIBackgroundQueueThread = uiBackgroundQueueThread;
|
||||
mNativeModulesQueueThread = nativeModulesQueueThread;
|
||||
mJSQueueThread = jsQueueThread;
|
||||
}
|
||||
@ -40,11 +35,6 @@ public class ReactQueueConfigurationImpl implements ReactQueueConfiguration {
|
||||
return mUIQueueThread;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable MessageQueueThread getUIBackgroundQueueThread() {
|
||||
return mUIBackgroundQueueThread;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MessageQueueThread getNativeModulesQueueThread() {
|
||||
return mNativeModulesQueueThread;
|
||||
@ -60,10 +50,6 @@ public class ReactQueueConfigurationImpl implements ReactQueueConfiguration {
|
||||
* is destroyed so that we shut down the proper queue threads.
|
||||
*/
|
||||
public void destroy() {
|
||||
if (mUIBackgroundQueueThread != null &&
|
||||
mUIBackgroundQueueThread.getLooper() != Looper.getMainLooper()) {
|
||||
mUIBackgroundQueueThread.quitSynchronous();
|
||||
}
|
||||
if (mNativeModulesQueueThread.getLooper() != Looper.getMainLooper()) {
|
||||
mNativeModulesQueueThread.quitSynchronous();
|
||||
}
|
||||
@ -94,16 +80,8 @@ public class ReactQueueConfigurationImpl implements ReactQueueConfiguration {
|
||||
MessageQueueThreadImpl.create(spec.getNativeModulesQueueThreadSpec(), exceptionHandler);
|
||||
}
|
||||
|
||||
MessageQueueThreadImpl uiBackgroundThread =
|
||||
specsToThreads.get(spec.getUIBackgroundQueueThreadSpec());
|
||||
if (uiBackgroundThread == null && spec.getUIBackgroundQueueThreadSpec() != null) {
|
||||
uiBackgroundThread =
|
||||
MessageQueueThreadImpl.create(spec.getUIBackgroundQueueThreadSpec(), exceptionHandler);
|
||||
}
|
||||
|
||||
return new ReactQueueConfigurationImpl(
|
||||
uiThread,
|
||||
uiBackgroundThread,
|
||||
nativeModulesThread,
|
||||
jsThread);
|
||||
}
|
||||
|
@ -25,23 +25,16 @@ public class ReactQueueConfigurationSpec {
|
||||
|
||||
private static final long LEGACY_STACK_SIZE_BYTES = 2000000;
|
||||
|
||||
private final @Nullable MessageQueueThreadSpec mUIBackgroundQueueThreadSpec;
|
||||
private final MessageQueueThreadSpec mNativeModulesQueueThreadSpec;
|
||||
private final MessageQueueThreadSpec mJSQueueThreadSpec;
|
||||
|
||||
private ReactQueueConfigurationSpec(
|
||||
@Nullable MessageQueueThreadSpec uiBackgroundQueueThreadSpec,
|
||||
MessageQueueThreadSpec nativeModulesQueueThreadSpec,
|
||||
MessageQueueThreadSpec jsQueueThreadSpec) {
|
||||
mUIBackgroundQueueThreadSpec = uiBackgroundQueueThreadSpec;
|
||||
mNativeModulesQueueThreadSpec = nativeModulesQueueThreadSpec;
|
||||
mJSQueueThreadSpec = jsQueueThreadSpec;
|
||||
}
|
||||
|
||||
public @Nullable MessageQueueThreadSpec getUIBackgroundQueueThreadSpec() {
|
||||
return mUIBackgroundQueueThreadSpec;
|
||||
}
|
||||
|
||||
public MessageQueueThreadSpec getNativeModulesQueueThreadSpec() {
|
||||
return mNativeModulesQueueThreadSpec;
|
||||
}
|
||||
@ -64,32 +57,11 @@ public class ReactQueueConfigurationSpec {
|
||||
.build();
|
||||
}
|
||||
|
||||
public static ReactQueueConfigurationSpec createWithSeparateUIBackgroundThread() {
|
||||
MessageQueueThreadSpec spec = Build.VERSION.SDK_INT < 21 ?
|
||||
MessageQueueThreadSpec.newBackgroundThreadSpec("native_modules", LEGACY_STACK_SIZE_BYTES) :
|
||||
MessageQueueThreadSpec.newBackgroundThreadSpec("native_modules");
|
||||
return builder()
|
||||
.setJSQueueThreadSpec(MessageQueueThreadSpec.newBackgroundThreadSpec("js"))
|
||||
.setNativeModulesQueueThreadSpec(spec)
|
||||
.setUIBackgroundQueueThreadSpec(
|
||||
MessageQueueThreadSpec.newUIBackgroundTreadSpec("ui_background"))
|
||||
.build();
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
|
||||
private @Nullable MessageQueueThreadSpec mUIBackgroundQueueSpec;
|
||||
private @Nullable MessageQueueThreadSpec mNativeModulesQueueSpec;
|
||||
private @Nullable MessageQueueThreadSpec mJSQueueSpec;
|
||||
|
||||
public Builder setUIBackgroundQueueThreadSpec(MessageQueueThreadSpec spec) {
|
||||
Assertions.assertCondition(
|
||||
mUIBackgroundQueueSpec == null,
|
||||
"Setting UI background queue multiple times!");
|
||||
mUIBackgroundQueueSpec = spec;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setNativeModulesQueueThreadSpec(MessageQueueThreadSpec spec) {
|
||||
Assertions.assertCondition(
|
||||
mNativeModulesQueueSpec == null,
|
||||
@ -106,7 +78,6 @@ public class ReactQueueConfigurationSpec {
|
||||
|
||||
public ReactQueueConfigurationSpec build() {
|
||||
return new ReactQueueConfigurationSpec(
|
||||
mUIBackgroundQueueSpec,
|
||||
Assertions.assertNotNull(mNativeModulesQueueSpec),
|
||||
Assertions.assertNotNull(mJSQueueSpec));
|
||||
}
|
||||
|
@ -305,7 +305,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule implements
|
||||
new SizeMonitoringFrameLayout.OnSizeChangedListener() {
|
||||
@Override
|
||||
public void onSizeChanged(final int width, final int height, int oldW, int oldH) {
|
||||
reactApplicationContext.runUIBackgroundRunnable(
|
||||
reactApplicationContext.runOnNativeModulesQueueThread(
|
||||
new GuardedRunnable(reactApplicationContext) {
|
||||
@Override
|
||||
public void runGuarded() {
|
||||
@ -325,7 +325,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule implements
|
||||
}
|
||||
|
||||
public void updateNodeSize(int nodeViewTag, int newWidth, int newHeight) {
|
||||
getReactApplicationContext().assertOnUIBackgroundOrNativeModulesThread();
|
||||
getReactApplicationContext().assertOnNativeModulesQueueThread();
|
||||
|
||||
mUIImplementation.updateNodeSize(nodeViewTag, newWidth, newHeight);
|
||||
}
|
||||
@ -344,7 +344,7 @@ public class UIManagerModule extends ReactContextBaseJavaModule implements
|
||||
|
||||
reactApplicationContext.assertOnUiQueueThread();
|
||||
|
||||
reactApplicationContext.runUIBackgroundRunnable(
|
||||
reactApplicationContext.runOnNativeModulesQueueThread(
|
||||
new GuardedRunnable(reactApplicationContext) {
|
||||
@Override
|
||||
public void runGuarded() {
|
||||
|
@ -306,7 +306,7 @@ public class ReactModalHostView extends ViewGroup implements LifecycleEventListe
|
||||
if (getChildCount() > 0) {
|
||||
final int viewTag = getChildAt(0).getId();
|
||||
ReactContext reactContext = (ReactContext) getContext();
|
||||
reactContext.runUIBackgroundRunnable(
|
||||
reactContext.runOnNativeModulesQueueThread(
|
||||
new GuardedRunnable(reactContext) {
|
||||
@Override
|
||||
public void runGuarded() {
|
||||
|
@ -89,9 +89,6 @@ CatalystInstanceImpl::~CatalystInstanceImpl() {
|
||||
if (moduleMessageQueue_ != NULL) {
|
||||
moduleMessageQueue_->quitSynchronous();
|
||||
}
|
||||
if (uiBackgroundMessageQueue_ != NULL) {
|
||||
uiBackgroundMessageQueue_->quitSynchronous();
|
||||
}
|
||||
}
|
||||
|
||||
void CatalystInstanceImpl::registerNatives() {
|
||||
@ -119,15 +116,11 @@ void CatalystInstanceImpl::initializeBridge(
|
||||
JavaScriptExecutorHolder* jseh,
|
||||
jni::alias_ref<JavaMessageQueueThread::javaobject> jsQueue,
|
||||
jni::alias_ref<JavaMessageQueueThread::javaobject> nativeModulesQueue,
|
||||
jni::alias_ref<JavaMessageQueueThread::javaobject> uiBackgroundQueue,
|
||||
jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject> javaModules,
|
||||
jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject> cxxModules) {
|
||||
// TODO mhorowitz: how to assert here?
|
||||
// Assertions.assertCondition(mBridge == null, "initializeBridge should be called once");
|
||||
moduleMessageQueue_ = std::make_shared<JMessageQueueThread>(nativeModulesQueue);
|
||||
if (uiBackgroundQueue.get() != nullptr) {
|
||||
uiBackgroundMessageQueue_ = std::make_shared<JMessageQueueThread>(uiBackgroundQueue);
|
||||
}
|
||||
|
||||
// This used to be:
|
||||
//
|
||||
@ -150,13 +143,12 @@ void CatalystInstanceImpl::initializeBridge(
|
||||
std::weak_ptr<Instance>(instance_),
|
||||
javaModules,
|
||||
cxxModules,
|
||||
moduleMessageQueue_,
|
||||
uiBackgroundMessageQueue_));
|
||||
moduleMessageQueue_));
|
||||
|
||||
instance_->initializeBridge(
|
||||
folly::make_unique<JInstanceCallback>(
|
||||
callback,
|
||||
uiBackgroundMessageQueue_ != NULL ? uiBackgroundMessageQueue_ : moduleMessageQueue_),
|
||||
moduleMessageQueue_),
|
||||
jseh->getExecutorFactory(),
|
||||
folly::make_unique<JMessageQueueThread>(jsQueue),
|
||||
moduleRegistry_);
|
||||
@ -169,8 +161,7 @@ void CatalystInstanceImpl::extendNativeModules(
|
||||
std::weak_ptr<Instance>(instance_),
|
||||
javaModules,
|
||||
cxxModules,
|
||||
moduleMessageQueue_,
|
||||
uiBackgroundMessageQueue_));
|
||||
moduleMessageQueue_));
|
||||
}
|
||||
|
||||
void CatalystInstanceImpl::jniSetSourceURL(const std::string& sourceURL) {
|
||||
|
@ -46,7 +46,6 @@ class CatalystInstanceImpl : public jni::HybridClass<CatalystInstanceImpl> {
|
||||
JavaScriptExecutorHolder* jseh,
|
||||
jni::alias_ref<JavaMessageQueueThread::javaobject> jsQueue,
|
||||
jni::alias_ref<JavaMessageQueueThread::javaobject> moduleQueue,
|
||||
jni::alias_ref<JavaMessageQueueThread::javaobject> uiBackgroundQueue,
|
||||
jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject> javaModules,
|
||||
jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject> cxxModules);
|
||||
|
||||
@ -79,7 +78,6 @@ class CatalystInstanceImpl : public jni::HybridClass<CatalystInstanceImpl> {
|
||||
std::shared_ptr<Instance> instance_;
|
||||
std::shared_ptr<ModuleRegistry> moduleRegistry_;
|
||||
std::shared_ptr<JMessageQueueThread> moduleMessageQueue_;
|
||||
std::shared_ptr<JMessageQueueThread> uiBackgroundMessageQueue_;
|
||||
};
|
||||
|
||||
}}
|
||||
|
@ -33,25 +33,12 @@ std::vector<std::unique_ptr<NativeModule>> buildNativeModuleList(
|
||||
std::weak_ptr<Instance> winstance,
|
||||
jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject> javaModules,
|
||||
jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject> cxxModules,
|
||||
std::shared_ptr<MessageQueueThread> moduleMessageQueue,
|
||||
std::shared_ptr<MessageQueueThread> uiBackgroundMessageQueue) {
|
||||
std::shared_ptr<MessageQueueThread> moduleMessageQueue) {
|
||||
std::vector<std::unique_ptr<NativeModule>> modules;
|
||||
if (javaModules) {
|
||||
for (const auto& jm : *javaModules) {
|
||||
std::string name = jm->getName();
|
||||
if (uiBackgroundMessageQueue != NULL &&
|
||||
// This is techinically a hack. Perhaps we should bind the specific queue to the module
|
||||
// in the module holder or wrapper.
|
||||
// TODO expose as module configuration option
|
||||
(name == "UIManager" ||
|
||||
name == "NativeAnimatedModule" ||
|
||||
name == "FBFacebookReactNavigator")) {
|
||||
modules.emplace_back(folly::make_unique<JavaNativeModule>(
|
||||
winstance, jm, uiBackgroundMessageQueue));
|
||||
} else {
|
||||
modules.emplace_back(folly::make_unique<JavaNativeModule>(
|
||||
winstance, jm, moduleMessageQueue));
|
||||
}
|
||||
modules.emplace_back(folly::make_unique<JavaNativeModule>(
|
||||
winstance, jm, moduleMessageQueue));
|
||||
}
|
||||
}
|
||||
if (cxxModules) {
|
||||
|
@ -27,7 +27,6 @@ std::vector<std::unique_ptr<NativeModule>> buildNativeModuleList(
|
||||
std::weak_ptr<Instance> winstance,
|
||||
jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject> javaModules,
|
||||
jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject> cxxModules,
|
||||
std::shared_ptr<MessageQueueThread> moduleMessageQueue,
|
||||
std::shared_ptr<MessageQueueThread> uiBackgroundMessageQueue);
|
||||
std::shared_ptr<MessageQueueThread> moduleMessageQueue);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user