mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Refactor: ReactInstance: Make ctor more readable (#43984)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43984 Just improvemnts for readability. Changelog: [Internal] Reviewed By: cipolleschi Differential Revision: D55563578 fbshipit-source-id: cb0ee311091db187bb938547c335c5583243116b
This commit is contained in:
committed by
Facebook GitHub Bot
parent
2e3f2268dc
commit
37eca5d6cd
@@ -41,7 +41,7 @@ ReactInstance::ReactInstance(
|
||||
RuntimeExecutor runtimeExecutor = [weakRuntime = std::weak_ptr(runtime_),
|
||||
weakTimerManager =
|
||||
std::weak_ptr(timerManager_),
|
||||
weakJsMessageQueueThread =
|
||||
weakJsThread =
|
||||
std::weak_ptr(jsMessageQueueThread_),
|
||||
weakJsErrorHander = std::weak_ptr(
|
||||
jsErrorHandler_)](auto callback) {
|
||||
@@ -57,26 +57,28 @@ ReactInstance::ReactInstance(
|
||||
return;
|
||||
}
|
||||
|
||||
if (std::shared_ptr<MessageQueueThread> sharedJsMessageQueueThread =
|
||||
weakJsMessageQueueThread.lock()) {
|
||||
sharedJsMessageQueueThread->runOnQueue(
|
||||
if (auto jsThread = weakJsThread.lock()) {
|
||||
jsThread->runOnQueue(
|
||||
[weakRuntime, weakTimerManager, callback = std::move(callback)]() {
|
||||
if (auto strongRuntime = weakRuntime.lock()) {
|
||||
jsi::Runtime& jsiRuntime = strongRuntime->getRuntime();
|
||||
SystraceSection s("ReactInstance::_runtimeExecutor[Callback]");
|
||||
try {
|
||||
callback(jsiRuntime);
|
||||
auto runtime = weakRuntime.lock();
|
||||
if (!runtime) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If we have first-class support for microtasks,
|
||||
// they would've been called as part of the previous callback.
|
||||
if (!ReactNativeFeatureFlags::enableMicrotasks()) {
|
||||
if (auto strongTimerManager = weakTimerManager.lock()) {
|
||||
strongTimerManager->callReactNativeMicrotasks(jsiRuntime);
|
||||
}
|
||||
jsi::Runtime& jsiRuntime = runtime->getRuntime();
|
||||
SystraceSection s("ReactInstance::_runtimeExecutor[Callback]");
|
||||
try {
|
||||
callback(jsiRuntime);
|
||||
|
||||
// If we have first-class support for microtasks,
|
||||
// they would've been called as part of the previous callback.
|
||||
if (!ReactNativeFeatureFlags::enableMicrotasks()) {
|
||||
if (auto timerManager = weakTimerManager.lock()) {
|
||||
timerManager->callReactNativeMicrotasks(jsiRuntime);
|
||||
}
|
||||
} catch (jsi::JSError& originalError) {
|
||||
handleJSError(jsiRuntime, originalError, true);
|
||||
}
|
||||
} catch (jsi::JSError& originalError) {
|
||||
handleJSError(jsiRuntime, originalError, true);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -118,14 +120,11 @@ ReactInstance::ReactInstance(
|
||||
|
||||
runtimeScheduler_ = std::make_shared<RuntimeScheduler>(runtimeExecutor);
|
||||
|
||||
auto pipedRuntimeExecutor =
|
||||
bufferedRuntimeExecutor_ = std::make_shared<BufferedRuntimeExecutor>(
|
||||
[runtimeScheduler = runtimeScheduler_.get()](
|
||||
std::function<void(jsi::Runtime & runtime)>&& callback) {
|
||||
runtimeScheduler->scheduleWork(std::move(callback));
|
||||
};
|
||||
|
||||
bufferedRuntimeExecutor_ =
|
||||
std::make_shared<BufferedRuntimeExecutor>(pipedRuntimeExecutor);
|
||||
});
|
||||
}
|
||||
|
||||
void ReactInstance::unregisterFromInspector() {
|
||||
|
||||
Reference in New Issue
Block a user