diff options
author | Andrii Kalinich (GitHub) <AKalinich@luxoft.com> | 2020-09-30 15:09:05 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-30 15:09:05 -0400 |
commit | efb3c1d5ecc3688db65110d3a3c10560d249f33e (patch) | |
tree | 2e200c236abc125f5d3d1d15de2aecda66a98ab9 | |
parent | 3639085734ed6499db7f6e33025aa3ce3c9129ae (diff) | |
download | sdl_core-efb3c1d5ecc3688db65110d3a3c10560d249f33e.tar.gz |
Use atomic bool in ApplicatinManager (#3491)
Replace bool flag 'is_stopping_' in class
ApplicationManagerImpl and remove mutex
'stopping_application_mng_lock_'.
-rw-r--r-- | src/components/application_manager/include/application_manager/application_manager_impl.h | 4 | ||||
-rw-r--r-- | src/components/application_manager/src/application_manager_impl.cc | 11 |
2 files changed, 5 insertions, 10 deletions
diff --git a/src/components/application_manager/include/application_manager/application_manager_impl.h b/src/components/application_manager/include/application_manager/application_manager_impl.h index ec39774423..b3b396026c 100644 --- a/src/components/application_manager/include/application_manager/application_manager_impl.h +++ b/src/components/application_manager/include/application_manager/application_manager_impl.h @@ -35,6 +35,7 @@ #include <stdint.h> #include <algorithm> +#include <atomic> #include <deque> #include <map> #include <memory> @@ -1666,7 +1667,6 @@ class ApplicationManagerImpl sync_primitives::Lock close_app_timer_pool_lock_; sync_primitives::Lock end_stream_timer_pool_lock_; - mutable sync_primitives::RecursiveLock stopping_application_mng_lock_; StateControllerImpl state_ctrl_; std::unique_ptr<app_launch::AppLaunchData> app_launch_dto_; std::unique_ptr<app_launch::AppLaunchCtrl> app_launch_ctrl_; @@ -1700,7 +1700,7 @@ class ApplicationManagerImpl std::atomic<bool> registered_during_timer_execution_; - volatile bool is_stopping_; + std::atomic<bool> is_stopping_; std::unique_ptr<CommandHolder> commands_holder_; diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc index 2b6a8bc5e9..1823458ce0 100644 --- a/src/components/application_manager/src/application_manager_impl.cc +++ b/src/components/application_manager/src/application_manager_impl.cc @@ -229,7 +229,7 @@ ApplicationManagerImpl::ApplicationManagerImpl( ApplicationManagerImpl::~ApplicationManagerImpl() { SDL_LOG_AUTO_TRACE(); - is_stopping_ = true; + is_stopping_.store(true); SendOnSDLClose(); media_manager_ = NULL; hmi_handler_ = NULL; @@ -2538,9 +2538,7 @@ bool ApplicationManagerImpl::Init( bool ApplicationManagerImpl::Stop() { SDL_LOG_AUTO_TRACE(); - stopping_application_mng_lock_.Acquire(); - is_stopping_ = true; - stopping_application_mng_lock_.Release(); + is_stopping_.store(true); application_list_update_timer_.Stop(); try { if (unregister_reason_ == @@ -2965,9 +2963,7 @@ void ApplicationManagerImpl::SetUnregisterAllApplicationsReason( void ApplicationManagerImpl::HeadUnitReset( mobile_api::AppInterfaceUnregisteredReason::eType reason) { SDL_LOG_AUTO_TRACE(); - stopping_application_mng_lock_.Acquire(); - is_stopping_ = true; - stopping_application_mng_lock_.Release(); + is_stopping_.store(true); switch (reason) { case mobile_api::AppInterfaceUnregisteredReason::MASTER_RESET: { SDL_LOG_TRACE("Performing MASTER_RESET"); @@ -3374,7 +3370,6 @@ mobile_apis::Result::eType ApplicationManagerImpl::CheckPolicyPermissions( } bool ApplicationManagerImpl::is_stopping() const { - sync_primitives::AutoLock lock(stopping_application_mng_lock_); return is_stopping_; } |