From a45787c3d32fa18c3aac93845a08ede5095076ec Mon Sep 17 00:00:00 2001 From: tuxiaohang Date: Thu, 29 May 2025 10:31:11 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"napi=5Fsend=5Fevent=20=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=B8=A6=E4=BC=98=E5=85=88=E7=BA=A7=E7=9A=84=20eventh?= =?UTF-8?q?andler"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 2d38787b62cd08bdacf342cf75efdc18ad54950c. Signed-off-by: tuxiaohang Change-Id: I87c96c84b97f1f4d3cef62f3aa274bba71bf6688 --- native_engine/native_safe_async_work.cpp | 17 +++++++---------- native_engine/native_safe_async_work.h | 2 -- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/native_engine/native_safe_async_work.cpp b/native_engine/native_safe_async_work.cpp index fa141a887..bedccebb7 100644 --- a/native_engine/native_safe_async_work.cpp +++ b/native_engine/native_safe_async_work.cpp @@ -104,7 +104,10 @@ NativeSafeAsyncWork::NativeSafeAsyncWork(NativeEngine* engine, #endif #if defined(ENABLE_EVENT_HANDLER) - runner_ = EventRunner::Current(); + std::shared_ptr runner = EventRunner::Current(); + if (runner != nullptr) { + eventHandler_ = std::make_shared(runner); + } #endif } @@ -398,8 +401,8 @@ napi_status NativeSafeAsyncWork::PostTask(void *data, int32_t priority, bool isT #if defined(ENABLE_EVENT_HANDLER) HILOG_DEBUG("NativeSafeAsyncWork::PostTask called"); std::unique_lock lock(eventHandlerMutex_); - if (runner_ == nullptr || engine_ == nullptr) { - HILOG_ERROR("post task failed due to nullptr engine or eventRunner"); + if (engine_ == nullptr || eventHandler_ == nullptr) { + HILOG_ERROR("post task failed due to nullptr engine or eventHandler"); return napi_status::napi_generic_failure; } // the task will be execute at main thread or worker thread @@ -414,9 +417,6 @@ napi_status NativeSafeAsyncWork::PostTask(void *data, int32_t priority, bool isT } }; - if (UNLIKELY(eventHandler_ == nullptr)) { - eventHandler_ = std::make_shared(runner_); - } bool res = false; if (isTail) { HILOG_DEBUG("The task is posted from tail"); @@ -436,10 +436,7 @@ napi_status NativeSafeAsyncWork::PostTask(void *data, int32_t priority, bool isT napi_status NativeSafeAsyncWork::SendEvent(const std::function &cb, napi_event_priority priority) { #ifdef ENABLE_EVENT_HANDLER - if (runner_) { - if (UNLIKELY(eventHandler_ == nullptr)) { - eventHandler_ = std::make_shared(runner_); - } + if (eventHandler_) { auto task = [eng = engine_, cb]() { auto vm = eng->GetEcmaVm(); panda::LocalScope scope(vm); diff --git a/native_engine/native_safe_async_work.h b/native_engine/native_safe_async_work.h index 046867eba..0e4ad9026 100644 --- a/native_engine/native_safe_async_work.h +++ b/native_engine/native_safe_async_work.h @@ -29,7 +29,6 @@ #if defined(ENABLE_EVENT_HANDLER) namespace OHOS::AppExecFwk { - class EventRunner; class EventHandler; } #endif @@ -107,7 +106,6 @@ private: SafeAsyncStatus status_ = SafeAsyncStatus::UNKNOW; #if defined(ENABLE_EVENT_HANDLER) std::mutex eventHandlerMutex_; - std::shared_ptr runner_ = nullptr; std::shared_ptr eventHandler_ = nullptr; #endif -- Gitee