From 0a43ba7b1d7a235632e64250c80ea31f46f5fe90 Mon Sep 17 00:00:00 2001 From: ChengLyric Date: Fri, 24 Oct 2025 15:06:30 +0800 Subject: [PATCH] fix:load so core dump --- base/registry/opp_so_manager.cc | 2 ++ inc/register/opp_so_manager.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/base/registry/opp_so_manager.cc b/base/registry/opp_so_manager.cc index 555e284d0b..5d7a04a7f9 100644 --- a/base/registry/opp_so_manager.cc +++ b/base/registry/opp_so_manager.cc @@ -117,6 +117,7 @@ void OppSoManager::LoadSoAndInitDefault(const std::vector &so_list } void OppSoManager::LoadOpsProtoPackage() const { + const std::lock_guard lock(mutex_); const bool is_split = PluginManager::IsSplitOpp(); GELOGI("Start to load ops proto package, is_split:[%d].", is_split); for (auto v = 0; v < static_cast(gert::OppImplVersionTag::kVersionEnd); ++v) { @@ -137,6 +138,7 @@ void OppSoManager::LoadOpsProtoPackage() const { } void OppSoManager::LoadOppPackage() const { + const std::lock_guard lock(mutex_); for (int32_t v = 0; v < static_cast(gert::OppImplVersionTag::kVersionEnd); ++v) { auto version = static_cast(v); std::vector> package_to_opp_so_desc_opp; diff --git a/inc/register/opp_so_manager.h b/inc/register/opp_so_manager.h index db3435f83c..54b2da902d 100644 --- a/inc/register/opp_so_manager.h +++ b/inc/register/opp_so_manager.h @@ -11,6 +11,7 @@ #define INC_REGISTER_OPP_SO_MANAGER_H_ #include "base/registry/opp_package_utils.h" +#include namespace ge { class OppSoManager { @@ -25,6 +26,7 @@ class OppSoManager { void LoadOpsProtoSo(gert::OppImplVersionTag version, std::vector> &package_to_opp_so_desc, bool is_split = true) const; void LoadOpMasterSo(gert::OppImplVersionTag version, std::vector> &package_to_opp_so_desc, bool is_split = true) const; void LoadSoAndInitDefault(const std::vector &so_list, gert::OppImplVersionTag opp_version_tag, const std::string &package_name) const; + mutable std::mutex mutex_; }; } // namespace ge -- Gitee