diff --git a/services/distributedhardwarefwkservice/include/task/task_executor.h b/services/distributedhardwarefwkservice/include/task/task_executor.h index 6fa1f650d4864d92e9d0cf2393b3481342f603df..e1eb62e89819a59b40bc0493b278baf57a70d17e 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 5496a6e5d48d0c38902fda540ecbcfef2bf6f819..dec5f33d8715f246dc54f3011bd04c02e42cb4f3 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 1fcb2be923513fc4d990630390aeeb68a3a6ad82..963ddd4f1b169169148dee3a1a53594658703912 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 84ccde97ab20186ba165c7f9957ca13b1504930c..c7d8ec54cfa53520b8aa3220f0469ad6f40178b0 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", ]