From def628b03e7d9859b638ba4a2eb49e18ddcfac66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=BE=E9=98=B3=E7=86=A0?= Date: Wed, 20 Aug 2025 01:11:57 +0000 Subject: [PATCH 1/2] update services/param/watcher/agent/watcher_manager_kits.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 乾阳熠 --- .../param/watcher/agent/watcher_manager_kits.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/services/param/watcher/agent/watcher_manager_kits.cpp b/services/param/watcher/agent/watcher_manager_kits.cpp index d6acf5b55..7a9dad142 100644 --- a/services/param/watcher/agent/watcher_manager_kits.cpp +++ b/services/param/watcher/agent/watcher_manager_kits.cpp @@ -279,18 +279,22 @@ int32_t WatcherManagerKits::RemoteWatcher::OnParameterChange( const std::string &prefix, const std::string &name, const std::string &value) { Watcher::OnParameterChange(prefix, name, value); - // get param watcher - WatcherManagerKits::ParamWatcher *watcher = watcherManager_->GetParamWatcher(prefix); + WATCHER_CHECK(watcherManager_ != nullptr, return -1, "Failed to get watcherManager_"); + return watcherManager_->OnParameterChangeWithLock(prefix, name, value); +} + +int32_t WatcherManagerKits::OnParameterChangeWithLock( + const std::string &prefix, const std::string &name, const std::string &value) +{ + WatcherManagerKits::ParamWatcher *watcher = GetParamWatcher(prefix); + std::lock_guard lock(mutex_); WATCHER_CHECK(watcher != nullptr, return -1, "Failed to get watcher '%s'", prefix.c_str()); - if (watcher != nullptr) { - watcher->OnParameterChange(name, value); - } + watcher->OnParameterChange(name, value); return 0; } void WatcherManagerKits::ParamWatcher::OnParameterChange(const std::string &name, const std::string &value) { - std::lock_guard lock(mutex_); WATCHER_LOGV("OnParameterChange name %s value %s", name.c_str(), value.c_str()); uint32_t index = 0; ParameterChangeListener *listener = GetParameterListener(&index); -- Gitee From 12983b062915dc1de61f6bc284f23e668b17dbcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=BE=E9=98=B3=E7=86=A0?= Date: Wed, 20 Aug 2025 01:13:00 +0000 Subject: [PATCH 2/2] update services/param/watcher/agent/watcher_manager_kits.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 乾阳熠 --- services/param/watcher/agent/watcher_manager_kits.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/param/watcher/agent/watcher_manager_kits.h b/services/param/watcher/agent/watcher_manager_kits.h index 6140a6c23..da1e768c6 100644 --- a/services/param/watcher/agent/watcher_manager_kits.h +++ b/services/param/watcher/agent/watcher_manager_kits.h @@ -116,6 +116,8 @@ private: std::mutex threadlock_; sptr watcherManager_ {}; sptr deathRecipient_ {}; + int32_t OnParameterChangeWithLock( + const std::string &prefix, const std::string &name, const std::string &value); std::mutex mutex_; uint32_t remoteWatcherId_ = { 0 }; -- Gitee