From 4d95b310e7f53a0a65e8f2b48826b7403bd4fc42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Wed, 22 Jan 2025 04:57:58 +0000 Subject: [PATCH 01/12] update frameworks/js/napi/network/observer/include/network_observer.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- frameworks/js/napi/network/observer/include/network_observer.h | 1 + 1 file changed, 1 insertion(+) diff --git a/frameworks/js/napi/network/observer/include/network_observer.h b/frameworks/js/napi/network/observer/include/network_observer.h index 8ff65a27a..ce1c54e2a 100644 --- a/frameworks/js/napi/network/observer/include/network_observer.h +++ b/frameworks/js/napi/network/observer/include/network_observer.h @@ -66,5 +66,6 @@ private: }; extern std::map> g_observerMap; +extern std::mutex g_observerMap_mtx; } // namespace OHOS::NetManagerStandard #endif /* NETMANAGER_BASE_NETWORK_OBSERVER_H */ -- Gitee From 5f228160048a0d7ca7642cc53e5861806257e109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Wed, 22 Jan 2025 04:58:48 +0000 Subject: [PATCH 02/12] update frameworks/js/napi/network/observer/src/network_observer.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- frameworks/js/napi/network/observer/src/network_observer.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/frameworks/js/napi/network/observer/src/network_observer.cpp b/frameworks/js/napi/network/observer/src/network_observer.cpp index 659511e8c..990988f30 100644 --- a/frameworks/js/napi/network/observer/src/network_observer.cpp +++ b/frameworks/js/napi/network/observer/src/network_observer.cpp @@ -28,6 +28,7 @@ static std::mutex OBSERVER_MUTEX; namespace OHOS::NetManagerStandard { std::map> g_observerMap; +std::mutex g_observerMap_mtx; static napi_value MakeNetworkResponse(napi_env env, NetworkType *data) { -- Gitee From dd61b18eb221ced20937bb311aae19219b894247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Wed, 22 Jan 2025 05:02:29 +0000 Subject: [PATCH 03/12] update frameworks/js/napi/network/network_module/src/network_module.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- .../js/napi/network/network_module/src/network_module.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frameworks/js/napi/network/network_module/src/network_module.cpp b/frameworks/js/napi/network/network_module/src/network_module.cpp index c4cfe0554..37b4b12e4 100644 --- a/frameworks/js/napi/network/network_module/src/network_module.cpp +++ b/frameworks/js/napi/network/network_module/src/network_module.cpp @@ -35,7 +35,10 @@ napi_value NetworkModule::InitNetworkModule(napi_env env, napi_value exports) auto manager = new EventManager; auto observer = new NetworkObserver; observer->SetManager(manager); - g_observerMap[manager] = observer; + { + std::lock_guard lock(g_observerMap_mtx); + g_observerMap[manager] = observer; + } auto finalizer = [](napi_env, void *data, void *) { auto manager = reinterpret_cast(data); -- Gitee From 4dc37923f1413c3039180ea9f3a543f46b9c46d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Wed, 22 Jan 2025 06:28:43 +0000 Subject: [PATCH 04/12] update frameworks/js/napi/network/network_exec/src/network_exec.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- .../network/network_exec/src/network_exec.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/frameworks/js/napi/network/network_exec/src/network_exec.cpp b/frameworks/js/napi/network/network_exec/src/network_exec.cpp index cb778f8c8..43393475f 100644 --- a/frameworks/js/napi/network/network_exec/src/network_exec.cpp +++ b/frameworks/js/napi/network/network_exec/src/network_exec.cpp @@ -116,10 +116,14 @@ bool NetworkExec::ExecSubscribe(SubscribeContext *context) NETMANAGER_BASE_LOGI("ExecSubscribe"); EventManager *manager = context->GetManager(); - sptr callback = g_observerMap[manager]; - if (callback == nullptr) { + std::shared_lock lock(g_observerMap_mtx); + auto iter = g_observerMap.find(manager); + if (iter == g_observerMap.end() || iter->second == nullptr) { + NETMANAGER_BASE_LOGE("callback is null"); return false; } + auto callback = iter->second; + lock.unlock(); sptr specifier = new NetSpecifier; specifier->netCapabilities_.netCaps_.insert(NET_CAPABILITY_INTERNET); NetConnClient::GetInstance().UnregisterNetConnCallback(callback); @@ -150,12 +154,14 @@ bool NetworkExec::ExecUnsubscribe(UnsubscribeContext *context) { NETMANAGER_BASE_LOGI("ExecUnsubscribe"); EventManager *manager = context->GetManager(); - sptr callback = g_observerMap[manager]; - if (callback == nullptr) { + std::shared_lock lock(g_observerMap_mtx); + auto iter = g_observerMap.find(manager); + if (iter == g_observerMap.end() || iter->second == nullptr) { NETMANAGER_BASE_LOGE("callback is null"); return false; } - + auto callback = iter->second; + lock.unlock(); int32_t ret = NetConnClient::GetInstance().UnregisterNetConnCallback(callback); context->SetErrorCode(ret); return ret == NETMANAGER_SUCCESS; -- Gitee From 74dd9f7c15f47f468baac8a8dd454ca2435f81aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Wed, 22 Jan 2025 06:29:52 +0000 Subject: [PATCH 05/12] update frameworks/js/napi/network/observer/src/network_observer.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- frameworks/js/napi/network/observer/src/network_observer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/js/napi/network/observer/src/network_observer.cpp b/frameworks/js/napi/network/observer/src/network_observer.cpp index 990988f30..4f79bb195 100644 --- a/frameworks/js/napi/network/observer/src/network_observer.cpp +++ b/frameworks/js/napi/network/observer/src/network_observer.cpp @@ -28,7 +28,7 @@ static std::mutex OBSERVER_MUTEX; namespace OHOS::NetManagerStandard { std::map> g_observerMap; -std::mutex g_observerMap_mtx; +std::shared_mutex g_observerMap_mtx; static napi_value MakeNetworkResponse(napi_env env, NetworkType *data) { -- Gitee From 6340c0c3534a42d42b9164c89f8720e6b4a46a25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Wed, 22 Jan 2025 06:30:25 +0000 Subject: [PATCH 06/12] update frameworks/js/napi/network/observer/include/network_observer.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- frameworks/js/napi/network/observer/include/network_observer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/js/napi/network/observer/include/network_observer.h b/frameworks/js/napi/network/observer/include/network_observer.h index ce1c54e2a..e9fb0161d 100644 --- a/frameworks/js/napi/network/observer/include/network_observer.h +++ b/frameworks/js/napi/network/observer/include/network_observer.h @@ -66,6 +66,6 @@ private: }; extern std::map> g_observerMap; -extern std::mutex g_observerMap_mtx; +extern std::shared_mutex g_observerMap_mtx; } // namespace OHOS::NetManagerStandard #endif /* NETMANAGER_BASE_NETWORK_OBSERVER_H */ -- Gitee From 592ed0c401d193f9ec17d683707c3fea07145bff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Wed, 22 Jan 2025 08:16:23 +0000 Subject: [PATCH 07/12] update frameworks/js/napi/network/network_module/src/network_module.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- .../js/napi/network/network_module/src/network_module.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/js/napi/network/network_module/src/network_module.cpp b/frameworks/js/napi/network/network_module/src/network_module.cpp index 37b4b12e4..103e44a79 100644 --- a/frameworks/js/napi/network/network_module/src/network_module.cpp +++ b/frameworks/js/napi/network/network_module/src/network_module.cpp @@ -36,7 +36,7 @@ napi_value NetworkModule::InitNetworkModule(napi_env env, napi_value exports) auto observer = new NetworkObserver; observer->SetManager(manager); { - std::lock_guard lock(g_observerMap_mtx); + std::lock_guard lock(g_observerMap_mtx); g_observerMap[manager] = observer; } -- Gitee From 62fa4f5618e9bc0b5851649f2f2a5cf28c17de6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Thu, 23 Jan 2025 03:15:52 +0000 Subject: [PATCH 08/12] update frameworks/js/napi/network/network_exec/src/network_exec.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- frameworks/js/napi/network/network_exec/src/network_exec.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/js/napi/network/network_exec/src/network_exec.cpp b/frameworks/js/napi/network/network_exec/src/network_exec.cpp index 43393475f..202daa6c0 100644 --- a/frameworks/js/napi/network/network_exec/src/network_exec.cpp +++ b/frameworks/js/napi/network/network_exec/src/network_exec.cpp @@ -116,7 +116,7 @@ bool NetworkExec::ExecSubscribe(SubscribeContext *context) NETMANAGER_BASE_LOGI("ExecSubscribe"); EventManager *manager = context->GetManager(); - std::shared_lock lock(g_observerMap_mtx); + std::shared_lock lock(g_observerMapMtx); auto iter = g_observerMap.find(manager); if (iter == g_observerMap.end() || iter->second == nullptr) { NETMANAGER_BASE_LOGE("callback is null"); -- Gitee From 00ce56f0e83f4ea32c3c174222bf59785c69e76e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Thu, 23 Jan 2025 03:16:49 +0000 Subject: [PATCH 09/12] update frameworks/js/napi/network/network_exec/src/network_exec.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- frameworks/js/napi/network/network_exec/src/network_exec.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/js/napi/network/network_exec/src/network_exec.cpp b/frameworks/js/napi/network/network_exec/src/network_exec.cpp index 202daa6c0..cb1927173 100644 --- a/frameworks/js/napi/network/network_exec/src/network_exec.cpp +++ b/frameworks/js/napi/network/network_exec/src/network_exec.cpp @@ -154,7 +154,7 @@ bool NetworkExec::ExecUnsubscribe(UnsubscribeContext *context) { NETMANAGER_BASE_LOGI("ExecUnsubscribe"); EventManager *manager = context->GetManager(); - std::shared_lock lock(g_observerMap_mtx); + std::shared_lock lock(g_observerMapMtx); auto iter = g_observerMap.find(manager); if (iter == g_observerMap.end() || iter->second == nullptr) { NETMANAGER_BASE_LOGE("callback is null"); -- Gitee From 4c45515c173187729a2e1041d6f8bb09ef84afae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Thu, 23 Jan 2025 03:17:20 +0000 Subject: [PATCH 10/12] update frameworks/js/napi/network/network_module/src/network_module.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- .../js/napi/network/network_module/src/network_module.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/js/napi/network/network_module/src/network_module.cpp b/frameworks/js/napi/network/network_module/src/network_module.cpp index 103e44a79..cbaba2cc6 100644 --- a/frameworks/js/napi/network/network_module/src/network_module.cpp +++ b/frameworks/js/napi/network/network_module/src/network_module.cpp @@ -36,7 +36,7 @@ napi_value NetworkModule::InitNetworkModule(napi_env env, napi_value exports) auto observer = new NetworkObserver; observer->SetManager(manager); { - std::lock_guard lock(g_observerMap_mtx); + std::lock_guard lock(g_observerMapMtx); g_observerMap[manager] = observer; } -- Gitee From aa26e5052c651ee2f5822fbdfd81c9fd8f59425e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Thu, 23 Jan 2025 03:17:57 +0000 Subject: [PATCH 11/12] update frameworks/js/napi/network/observer/include/network_observer.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- frameworks/js/napi/network/observer/include/network_observer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/js/napi/network/observer/include/network_observer.h b/frameworks/js/napi/network/observer/include/network_observer.h index e9fb0161d..377139e0f 100644 --- a/frameworks/js/napi/network/observer/include/network_observer.h +++ b/frameworks/js/napi/network/observer/include/network_observer.h @@ -66,6 +66,6 @@ private: }; extern std::map> g_observerMap; -extern std::shared_mutex g_observerMap_mtx; +extern std::shared_mutex g_observerMapMtx; } // namespace OHOS::NetManagerStandard #endif /* NETMANAGER_BASE_NETWORK_OBSERVER_H */ -- Gitee From 344a1e93851c4018d473f9b1f3e02f98b69dbb21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A5=BC=E5=B9=B2?= <3364917990@qq.com> Date: Thu, 23 Jan 2025 03:18:26 +0000 Subject: [PATCH 12/12] update frameworks/js/napi/network/observer/src/network_observer.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 小饼干 <3364917990@qq.com> --- frameworks/js/napi/network/observer/src/network_observer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/js/napi/network/observer/src/network_observer.cpp b/frameworks/js/napi/network/observer/src/network_observer.cpp index 4f79bb195..2b64177fa 100644 --- a/frameworks/js/napi/network/observer/src/network_observer.cpp +++ b/frameworks/js/napi/network/observer/src/network_observer.cpp @@ -28,7 +28,7 @@ static std::mutex OBSERVER_MUTEX; namespace OHOS::NetManagerStandard { std::map> g_observerMap; -std::shared_mutex g_observerMap_mtx; +std::shared_mutex g_observerMapMtx; static napi_value MakeNetworkResponse(napi_env env, NetworkType *data) { -- Gitee