From 176674e4d9e11f36669951eb89949c70c36f302c Mon Sep 17 00:00:00 2001 From: li-tiangang4 Date: Thu, 4 Sep 2025 09:05:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9ffrt=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E8=AE=BE=E5=A4=87=E5=8D=A1=E6=AD=BB=E5=91=8A?= =?UTF-8?q?=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: li-tiangang4 --- .../include/task/task_executor.h | 8 +++++--- .../src/task/task_executor.cpp | 10 +++------- .../test/fuzztest/task_fuzzer/BUILD.gn | 1 + .../test/unittest/common/task/BUILD.gn | 2 ++ 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/services/distributedhardwarefwkservice/include/task/task_executor.h b/services/distributedhardwarefwkservice/include/task/task_executor.h index 6fa1f650..e1eb62e8 100644 --- a/services/distributedhardwarefwkservice/include/task/task_executor.h +++ b/services/distributedhardwarefwkservice/include/task/task_executor.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2024 Huawei Device Co., Ltd. + * Copyright (c) 2021-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -20,6 +20,8 @@ #include #include +#include "ffrt.h" + #include "task.h" #include "single_instance.h" @@ -38,8 +40,8 @@ private: private: std::queue> taskQueue_; - std::mutex taskQueueMtx_; - std::condition_variable condVar_; + ffrt::mutex taskQueueMtx_; + ffrt::condition_variable condVar_; bool taskThreadFlag_; }; } // namespace DistributedHardware diff --git a/services/distributedhardwarefwkservice/src/task/task_executor.cpp b/services/distributedhardwarefwkservice/src/task/task_executor.cpp index 5496a6e5..dec5f33d 100644 --- a/services/distributedhardwarefwkservice/src/task/task_executor.cpp +++ b/services/distributedhardwarefwkservice/src/task/task_executor.cpp @@ -18,8 +18,6 @@ #include #include -#include "ffrt.h" - #include "dh_context.h" #include "distributed_hardware_errno.h" #include "distributed_hardware_log.h" @@ -52,7 +50,7 @@ void TaskExecutor::PushTask(const std::shared_ptr task) { DHLOGI("Push task: %{public}s", task->GetId().c_str()); - std::unique_lock lock(taskQueueMtx_); + std::unique_lock lock(taskQueueMtx_); if (taskQueue_.size() > MAX_TASK_QUEUE_LENGTH) { DHLOGE("Task queue is full"); return; @@ -67,10 +65,8 @@ std::shared_ptr TaskExecutor::PopTask() { std::shared_ptr task = nullptr; - std::unique_lock lock(taskQueueMtx_); - condVar_.wait(lock, [this] { - return !(this->taskQueue_.empty()); - }); + std::unique_lock lock(taskQueueMtx_); + condVar_.wait(lock, [this] { return !(this->taskQueue_.empty()); }); if (!taskQueue_.empty()) { task = taskQueue_.front(); diff --git a/services/distributedhardwarefwkservice/test/fuzztest/task_fuzzer/BUILD.gn b/services/distributedhardwarefwkservice/test/fuzztest/task_fuzzer/BUILD.gn index 1fcb2be9..963ddd4f 100644 --- a/services/distributedhardwarefwkservice/test/fuzztest/task_fuzzer/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/fuzztest/task_fuzzer/BUILD.gn @@ -48,6 +48,7 @@ ohos_fuzztest("TaskFuzzTest") { "cJSON:cjson", "c_utils:utils", "eventhandler:libeventhandler", + "ffrt:libffrt", "hilog:libhilog", "samgr:samgr_proxy", ] diff --git a/services/distributedhardwarefwkservice/test/unittest/common/task/BUILD.gn b/services/distributedhardwarefwkservice/test/unittest/common/task/BUILD.gn index 84ccde97..c7d8ec54 100644 --- a/services/distributedhardwarefwkservice/test/unittest/common/task/BUILD.gn +++ b/services/distributedhardwarefwkservice/test/unittest/common/task/BUILD.gn @@ -161,6 +161,7 @@ ohos_unittest("OnlineTaskTest") { "c_utils:utils", "device_manager:devicemanagersdk", "eventhandler:libeventhandler", + "ffrt:libffrt", "googletest:gmock", "googletest:gmock_main", "hilog:libhilog", @@ -207,6 +208,7 @@ ohos_unittest("DHTaskTest") { external_deps = [ "cJSON:cjson", "c_utils:utils", + "ffrt:libffrt", "hilog:libhilog", ] -- Gitee