summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrii Kalinich (GitHub) <AKalinich@luxoft.com>2020-09-30 15:09:05 -0400
committerGitHub <noreply@github.com>2020-09-30 15:09:05 -0400
commitefb3c1d5ecc3688db65110d3a3c10560d249f33e (patch)
tree2e200c236abc125f5d3d1d15de2aecda66a98ab9
parent3639085734ed6499db7f6e33025aa3ce3c9129ae (diff)
downloadsdl_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.h4
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc11
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_;
}