/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-native/ReactCommon/react/renderer/runtimescheduler/Task.h
59 строк
1 KB
Rubén Norte
Log task ID when scheduling and executing tasks in RuntimeScheduler (#52191)
23 июн 2025, 18:34
23 июн 2025, 18:34
251eb3f
Код
Авторство
О чём код?
/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #include <ReactCommon/SchedulerPriority.h> #include <jsi/jsi.h> #include <react/timing/primitives.h> #include <cstdint> #include <optional> #include <variant> namespace facebook::react { class RuntimeScheduler_Legacy; class RuntimeScheduler_Modern; class TaskPriorityComparer; using RawCallback = std::function<void(jsi::Runtime&)>; struct Task final : public jsi::NativeState { Task( SchedulerPriority priority, jsi::Function&& callback, HighResTimeStamp expirationTime); Task( SchedulerPriority priority, RawCallback&& callback, HighResTimeStamp expirationTime); private: friend RuntimeScheduler_Legacy; friend RuntimeScheduler_Modern; friend TaskPriorityComparer; SchedulerPriority priority; std::optional<std::variant<jsi::Function, RawCallback>> callback; HighResTimeStamp expirationTime; uint64_t id; jsi::Value execute(jsi::Runtime& runtime, bool didUserCallbackTimeout); }; class TaskPriorityComparer { public: inline bool operator()( const std::shared_ptr<Task>& lhs, const std::shared_ptr<Task>& rhs) { return lhs->expirationTime > rhs->expirationTime; } }; } // namespace facebook::react