diff --git a/bundle.json b/bundle.json index ef806980b354fccb22b76a342c97c7ffca5f65d6..17c11185f3d10d885cac7898bfba3dabd58460c6 100644 --- a/bundle.json +++ b/bundle.json @@ -24,7 +24,8 @@ "hitrace", "init", "ipc", - "image_framework" + "image_framework", + "ffrt" ], "third_party": [] }, diff --git a/libpurgeablemem/BUILD.gn b/libpurgeablemem/BUILD.gn index b1e7b5f523c3d783e5506c702b23696c153eafd0..c6c3e7aa095d5cd903f5ed1cd13d7b28da0068cb 100644 --- a/libpurgeablemem/BUILD.gn +++ b/libpurgeablemem/BUILD.gn @@ -16,10 +16,12 @@ import("//build/ohos/ndk/ndk.gni") config("libpurgeable_config") { include_dirs = [ + "include", "c/include", "common/include", "cpp/include", "interfaces/kits/c", + "//foundation/resourceschedule/ffrt/interfaces/kits/", ] cflags_cc = [ "-fexceptions" ] } @@ -38,9 +40,9 @@ ohos_shared_library("libpurgeablemem") { "cpp/src/purgeable_resource_manager.cpp", "cpp/src/ux_page_table.cpp", ] - include_dirs = [ "include" ] external_deps = [ "c_utils:utils", + "ffrt:libffrt", "hilog:libhilog", "hitrace:hitrace_meter", "init:libbegetutil", diff --git a/libpurgeablemem/cpp/include/purgeable_mem_base.h b/libpurgeablemem/cpp/include/purgeable_mem_base.h index e66727e45c5292ca9b4ace19448ffc79c8e89edd..f16187b9459e5a53aa85c7e2ba0bb52737ec75c8 100644 --- a/libpurgeablemem/cpp/include/purgeable_mem_base.h +++ b/libpurgeablemem/cpp/include/purgeable_mem_base.h @@ -23,6 +23,7 @@ #include "purgeable_mem_builder.h" #include "purgeable_resource_manager.h" #include "ux_page_table.h" +#include "ffrt.h" namespace OHOS { namespace PurgeableMem { @@ -106,7 +107,7 @@ public: protected: void *dataPtr_ = nullptr; - std::mutex dataLock_; + ffrt::mutex dataLock_; bool isDataValid_ {true}; size_t dataSizeInput_ = 0; std::unique_ptr builder_ = nullptr; diff --git a/libpurgeablemem/cpp/include/purgeable_resource_manager.h b/libpurgeablemem/cpp/include/purgeable_resource_manager.h index 9587ac14e28b59785e80da86d0c36aac17aaa95b..d9ae622563858a8c563061bd1633d63b0666f0d2 100644 --- a/libpurgeablemem/cpp/include/purgeable_resource_manager.h +++ b/libpurgeablemem/cpp/include/purgeable_resource_manager.h @@ -22,7 +22,7 @@ #include #include "thread_pool.h" - +#include "ffrt.h" namespace OHOS { namespace PurgeableMem { const std::string THREAD_POOL_NAME = "PurgeThread"; diff --git a/libpurgeablemem/cpp/src/purgeable_mem_base.cpp b/libpurgeablemem/cpp/src/purgeable_mem_base.cpp index 20f39af3caf541c4e9df26b4ef22c4caf022cb76..8b4fe8e0efe3debe96a24508976c5b74a39a68c6 100644 --- a/libpurgeablemem/cpp/src/purgeable_mem_base.cpp +++ b/libpurgeablemem/cpp/src/purgeable_mem_base.cpp @@ -163,7 +163,7 @@ bool PurgeableMemBase::BeginReadWithDataLock() return false; } - std::lock_guard lock(dataLock_); + std::lock_guard lock(dataLock_); if (!isDataValid_) { return false; } diff --git a/libpurgeablemem/cpp/src/purgeable_resource_manager.cpp b/libpurgeablemem/cpp/src/purgeable_resource_manager.cpp index aefec6ca70205c36db4c147b0e582756438f6ca3..a962642bfdb870bb491fad6c16d5f51055802ef9 100644 --- a/libpurgeablemem/cpp/src/purgeable_resource_manager.cpp +++ b/libpurgeablemem/cpp/src/purgeable_resource_manager.cpp @@ -218,7 +218,7 @@ void PurgeableResourceManager::EndAccessPurgeableMem() void PurgeableResourceManager::ChangeDataValid(std::shared_ptr resourcePtr, bool isVaild) const { StartTrace(HITRACE_TAG_ZIMAGE, "OHOS::PurgeableMem::PurgeableResourceManager::ChangeDataValid"); - std::lock_guard dataLock(resourcePtr->dataLock_); + std::lock_guard dataLock(resourcePtr->dataLock_); resourcePtr->SetDataValid(isVaild); if (!isVaild && resourcePtr->GetPinStatus() == 0) { resourcePtr->Pin();