diff options
author | Shobhit Adlakha <ShobhitAd@users.noreply.github.com> | 2022-10-26 11:34:13 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-26 11:34:13 -0400 |
commit | 7343fc72c12edc8ac42a62556c9e4b29c9408bc3 (patch) | |
tree | 32e910f5440c10b384bb26b5555ac7adb77540ee /src/components/policy | |
parent | 65947fd1eb30a392948d67003df0fe803c070c6b (diff) | |
parent | fb05c085b449b2149f85338fd4d00951205ab969 (diff) | |
download | sdl_core-master.tar.gz |
Release 8.2.0
Diffstat (limited to 'src/components/policy')
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(); |