summaryrefslogtreecommitdiff
path: root/src/components/policy
diff options
context:
space:
mode:
authorShobhit Adlakha <ShobhitAd@users.noreply.github.com>2022-10-26 11:34:13 -0400
committerGitHub <noreply@github.com>2022-10-26 11:34:13 -0400
commit7343fc72c12edc8ac42a62556c9e4b29c9408bc3 (patch)
tree32e910f5440c10b384bb26b5555ac7adb77540ee /src/components/policy
parent65947fd1eb30a392948d67003df0fe803c070c6b (diff)
parentfb05c085b449b2149f85338fd4d00951205ab969 (diff)
downloadsdl_core-master.tar.gz
Merge pull request #3949 from smartdevicelink/release/8.2.0HEAD8.2.0masterdevelop
Release 8.2.0
Diffstat (limited to 'src/components/policy')
-rw-r--r--src/components/policy/policy_external/include/policy/policy_manager_impl.h5
-rw-r--r--src/components/policy/policy_external/src/policy_manager_impl.cc3
-rw-r--r--src/components/policy/policy_regular/include/policy/policy_manager_impl.h5
-rw-r--r--src/components/policy/policy_regular/src/policy_manager_impl.cc3
4 files changed, 16 insertions, 0 deletions
diff --git a/src/components/policy/policy_external/include/policy/policy_manager_impl.h b/src/components/policy/policy_external/include/policy/policy_manager_impl.h
index 7822cc26f6..720f2e590f 100644
--- a/src/components/policy/policy_external/include/policy/policy_manager_impl.h
+++ b/src/components/policy/policy_external/include/policy/policy_manager_impl.h
@@ -1271,6 +1271,11 @@ class PolicyManagerImpl : public PolicyManager {
sync_primitives::Lock policy_table_lock_;
/**
+ * @brief lock guard for protecting policy table exchange
+ */
+ sync_primitives::Lock policy_table_exchange_lock_;
+
+ /**
* @brief lock guard for protecting application permissions access
*/
sync_primitives::Lock app_permissions_diff_lock_;
diff --git a/src/components/policy/policy_external/src/policy_manager_impl.cc b/src/components/policy/policy_external/src/policy_manager_impl.cc
index 60ab5a389e..1cf556946c 100644
--- a/src/components/policy/policy_external/src/policy_manager_impl.cc
+++ b/src/components/policy/policy_external/src/policy_manager_impl.cc
@@ -747,6 +747,9 @@ void PolicyManagerImpl::StartPTExchange() {
return;
}
+ sync_primitives::AutoLock policy_table_exchange_lock(
+ policy_table_exchange_lock_);
+
if (update_status_manager_.IsUpdatePending()) {
if (trigger_ptu_) {
update_status_manager_.ScheduleUpdate();
diff --git a/src/components/policy/policy_regular/include/policy/policy_manager_impl.h b/src/components/policy/policy_regular/include/policy/policy_manager_impl.h
index 16ab9417bb..ac57738ca0 100644
--- a/src/components/policy/policy_regular/include/policy/policy_manager_impl.h
+++ b/src/components/policy/policy_regular/include/policy/policy_manager_impl.h
@@ -1108,6 +1108,11 @@ class PolicyManagerImpl : public PolicyManager {
sync_primitives::Lock policy_table_lock_;
/**
+ * @brief lock guard for protecting policy table exchange
+ */
+ sync_primitives::Lock policy_table_exchange_lock_;
+
+ /**
* @brief lock guard for protecting application permissions access
*/
sync_primitives::Lock app_permissions_diff_lock_;
diff --git a/src/components/policy/policy_regular/src/policy_manager_impl.cc b/src/components/policy/policy_regular/src/policy_manager_impl.cc
index ccc3454708..b80367b647 100644
--- a/src/components/policy/policy_regular/src/policy_manager_impl.cc
+++ b/src/components/policy/policy_regular/src/policy_manager_impl.cc
@@ -629,6 +629,9 @@ void PolicyManagerImpl::StartPTExchange() {
return;
}
+ sync_primitives::AutoLock policy_table_exchange_lock(
+ policy_table_exchange_lock_);
+
if (update_status_manager_.IsUpdatePending() && update_required) {
if (trigger_ptu_)
update_status_manager_.ScheduleUpdate();