mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Funnel All Fabric calls to RuntimeExecutor to RuntimeScheduler
Summary: Changelog: [internal] This diff moves all calls to RuntimeExecutor to RuntimeScheduler. The calls are still immediately dispatched. Timing of events will not change. The goal of this diff is to prepare infrastructure for Concurrent Mode. Reviewed By: JoshuaGross Differential Revision: D27938536 fbshipit-source-id: 750b0e21e0ecbd7aa5a14885ebc70aae82203bd4
This commit is contained in:
committed by
Facebook GitHub Bot
parent
9b3c12dc87
commit
831e2d41ab
@@ -11,7 +11,7 @@ LOCAL_MODULE := fabricjni
|
||||
|
||||
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)
|
||||
|
||||
LOCAL_SHARED_LIBRARIES := libreactconfig librrc_slider librrc_progressbar librrc_switch librrc_modal libyoga libglog libfb libfbjni libglog_init libfolly_json libfolly_futures libreact_render_mounting libreactnativeutilsjni libreact_utils libreact_render_debug libreact_render_graphics libreact_render_core react_render_componentregistry librrc_view librrc_unimplementedview librrc_root librrc_scrollview libbetter libreact_render_attributedstring libreact_render_uimanager libreact_render_templateprocessor libreact_render_scheduler libreact_render_animations libreact_render_imagemanager libreact_render_textlayoutmanager libreact_codegen_rncore rrc_text librrc_image librrc_textinput librrc_picker libreact_debug libreact_render_mapbuffer libmapbufferjni libreact_render_telemetry
|
||||
LOCAL_SHARED_LIBRARIES := libreactconfig librrc_slider librrc_progressbar librrc_switch librrc_modal libyoga libglog libfb libfbjni libglog_init libfolly_json libfolly_futures libreact_render_mounting libreactnativeutilsjni libreact_utils libreact_render_debug libreact_render_graphics libreact_render_core react_render_componentregistry librrc_view librrc_unimplementedview librrc_root librrc_scrollview libbetter libreact_render_attributedstring libreact_render_uimanager libreact_render_templateprocessor libreact_render_scheduler libreact_render_animations libreact_render_imagemanager libreact_render_textlayoutmanager libreact_codegen_rncore rrc_text librrc_image librrc_textinput librrc_picker libreact_debug libreact_render_mapbuffer libmapbufferjni libreact_render_telemetry libreact_render_runtimescheduler
|
||||
|
||||
LOCAL_STATIC_LIBRARIES :=
|
||||
|
||||
@@ -57,6 +57,7 @@ $(call import-module,react/renderer/graphics)
|
||||
$(call import-module,react/renderer/imagemanager)
|
||||
$(call import-module,react/renderer/mapbuffer)
|
||||
$(call import-module,react/renderer/mounting)
|
||||
$(call import-module,react/renderer/runtimescheduler)
|
||||
$(call import-module,react/renderer/scheduler)
|
||||
$(call import-module,react/renderer/templateprocessor)
|
||||
$(call import-module,react/renderer/textlayoutmanager)
|
||||
|
||||
@@ -34,6 +34,7 @@ rn_xplat_cxx_library(
|
||||
react_native_xplat_target("react/renderer/scheduler:scheduler"),
|
||||
react_native_xplat_target("react/renderer/componentregistry:componentregistry"),
|
||||
react_native_xplat_target("react/renderer/components/scrollview:scrollview"),
|
||||
react_native_xplat_target("react/renderer/runtimescheduler:runtimescheduler"),
|
||||
react_native_xplat_target("runtimeexecutor:runtimeexecutor"),
|
||||
react_native_target("jni/react/jni:jni"),
|
||||
"//xplat/fbsystrace:fbsystrace",
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <react/renderer/core/EventEmitter.h>
|
||||
#include <react/renderer/core/conversions.h>
|
||||
#include <react/renderer/debug/SystraceSection.h>
|
||||
#include <react/renderer/runtimescheduler/RuntimeScheduler.h>
|
||||
#include <react/renderer/scheduler/Scheduler.h>
|
||||
#include <react/renderer/scheduler/SchedulerDelegate.h>
|
||||
#include <react/renderer/scheduler/SchedulerToolbox.h>
|
||||
@@ -499,6 +500,18 @@ void Binding::installFabricUIManager(
|
||||
auto sharedJSMessageQueueThread =
|
||||
std::make_shared<JMessageQueueThread>(jsMessageQueueThread);
|
||||
auto runtimeExecutor = runtimeExecutorHolder->cthis()->get();
|
||||
std::shared_ptr<RuntimeScheduler> runtimeScheduler;
|
||||
|
||||
if (config->getBool("react_fabric:enable_runtimescheduler_android")) {
|
||||
runtimeScheduler = std::make_shared<RuntimeScheduler>(runtimeExecutor);
|
||||
|
||||
auto originalRuntimeExecutor = runtimeExecutorHolder->cthis()->get();
|
||||
runtimeExecutor =
|
||||
[originalRuntimeExecutor, runtimeScheduler](
|
||||
std::function<void(jsi::Runtime & runtime)> &&callback) {
|
||||
runtimeScheduler->scheduleWork(std::move(callback));
|
||||
};
|
||||
}
|
||||
|
||||
auto enableV2AsynchronousEventBeat =
|
||||
config->getBool("react_fabric:enable_asynchronous_event_beat_v2_android");
|
||||
@@ -551,6 +564,7 @@ void Binding::installFabricUIManager(
|
||||
toolbox.contextContainer = contextContainer;
|
||||
toolbox.componentRegistryFactory = componentsRegistry->buildRegistryFunction;
|
||||
toolbox.runtimeExecutor = runtimeExecutor;
|
||||
toolbox.runtimeScheduler = runtimeScheduler;
|
||||
toolbox.synchronousEventBeatFactory = synchronousBeatFactory;
|
||||
toolbox.asynchronousEventBeatFactory = asynchronousBeatFactory;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user