From 0b8731d40df29cd327ed6c9910109ce0db7202a1 Mon Sep 17 00:00:00 2001 From: Samuel Susla Date: Thu, 8 Apr 2021 10:26:02 -0700 Subject: [PATCH] Add config flag for RuntimeScheduler Summary: Changelog: [internal] Add config flags for RuntimeScheduler. Even with the flags, React will not be using it. Further changes on React side will be required. Reviewed By: mdvacca Differential Revision: D27616916 fbshipit-source-id: 296a040c2b6dd936dd9582e937e6db75e28f31a4 --- ReactCommon/react/renderer/scheduler/BUCK | 1 + ReactCommon/react/renderer/scheduler/Scheduler.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/ReactCommon/react/renderer/scheduler/BUCK b/ReactCommon/react/renderer/scheduler/BUCK index 04b225de3e4..be576471252 100644 --- a/ReactCommon/react/renderer/scheduler/BUCK +++ b/ReactCommon/react/renderer/scheduler/BUCK @@ -60,6 +60,7 @@ rn_xplat_cxx_library( react_native_xplat_target("react/renderer/core:core"), react_native_xplat_target("react/renderer/mounting:mounting"), react_native_xplat_target("react/renderer/uimanager:uimanager"), + react_native_xplat_target("react/renderer/runtimescheduler:runtimescheduler"), react_native_xplat_target("react/renderer/templateprocessor:templateprocessor"), react_native_xplat_target("react/renderer/componentregistry:componentregistry"), react_native_xplat_target("react/renderer/debug:debug"), diff --git a/ReactCommon/react/renderer/scheduler/Scheduler.cpp b/ReactCommon/react/renderer/scheduler/Scheduler.cpp index 2b8b57ede20..8aefdbea991 100644 --- a/ReactCommon/react/renderer/scheduler/Scheduler.cpp +++ b/ReactCommon/react/renderer/scheduler/Scheduler.cpp @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -86,9 +87,20 @@ Scheduler::Scheduler( uiManager->setDelegate(this); uiManager->setComponentDescriptorRegistry(componentDescriptorRegistry_); +#ifdef ANDROID + auto enableRuntimeScheduler = reactNativeConfig_->getBool( + "react_fabric:enable_runtime_scheduler_android"); +#else + auto enableRuntimeScheduler = + reactNativeConfig_->getBool("react_fabric:enable_runtime_scheduler_ios"); +#endif + runtimeExecutor_([=](jsi::Runtime &runtime) { auto uiManagerBinding = UIManagerBinding::createAndInstallIfNeeded(runtime); uiManagerBinding->attach(uiManager); + if (enableRuntimeScheduler) { + RuntimeSchedulerBinding::createAndInstallIfNeeded(runtime); + } }); auto componentDescriptorRegistryKey =