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 =