/
githubmr
/
facebook-react-native
Обзор
Документация
Войти
/
githubmr
/
facebook-react-native
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
packages/react-native/React/CxxModule/DispatchMessageQueueThread.h
50 строк
1 KB
Ramanpreet Nara
Consolidate all c macros (#53823)
26 сен 2025, 02:59
26 сен 2025, 02:59
d389008
Код
Авторство
О чём код?
/* * 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. */ #include <glog/logging.h> #include <React/RCTLog.h> #include <cxxreact/MessageQueueThread.h> #ifndef RCT_REMOVE_LEGACY_ARCH namespace facebook::react { // RCTNativeModule arranges for native methods to be invoked on a queue which // is not the JS thread. C++ modules don't use RCTNativeModule, so this little // adapter does the work. class [[deprecated("This API will be removed along with the legacy architecture.")]] DispatchMessageQueueThread : public MessageQueueThread { public: DispatchMessageQueueThread(RCTModuleData *moduleData) : moduleData_(moduleData) {} void runOnQueue(std::function<void()> &&func) override { dispatch_queue_t queue = moduleData_.methodQueue; dispatch_block_t block = [func = std::move(func)] { func(); }; RCTAssert(block != nullptr, @"Invalid block generated in call to %@", moduleData_); if (queue && block) { dispatch_async(queue, block); } } void runOnQueueSync(std::function<void()> &&__unused func) override { LOG(FATAL) << "Unsupported operation"; } void quitSynchronous() override { LOG(FATAL) << "Unsupported operation"; } private: RCTModuleData *moduleData_; }; } // namespace facebook::react #endif // RCT_REMOVE_LEGACY_ARCH