summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/components/application_manager/src/application_manager_impl.cc23
1 files changed, 8 insertions, 15 deletions
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc
index 8d6c0869bb..fd5fb9d852 100644
--- a/src/components/application_manager/src/application_manager_impl.cc
+++ b/src/components/application_manager/src/application_manager_impl.cc
@@ -1902,6 +1902,8 @@ void ApplicationManagerImpl::UnregisterApplication(
LOG4CXX_INFO(logger_,
"ApplicationManagerImpl::UnregisterApplication " << app_id);
+ sync_primitives::AutoLock lock(applications_list_lock_);
+
switch (reason) {
case mobile_apis::Result::SUCCESS:break;
case mobile_apis::Result::DISALLOWED: break;
@@ -1919,23 +1921,14 @@ void ApplicationManagerImpl::UnregisterApplication(
}
ApplicationSharedPtr app_to_remove;
- {
- sync_primitives::AutoLock lock(applications_list_lock_);
-
- std::set<ApplicationSharedPtr>::const_iterator it = application_list_.begin();
- for (; it != application_list_.end(); ++it) {
- if ((*it)->app_id() == app_id) {
- app_to_remove = *it;
- break;
- }
+ std::set<ApplicationSharedPtr>::const_iterator it = application_list_.begin();
+ for (; it != application_list_.end(); ++it) {
+ if ((*it)->app_id() == app_id) {
+ app_to_remove = *it;
+ break;
}
- application_list_.erase(app_to_remove);
- }
-
- if (!app_to_remove) {
- LOG4CXX_INFO(logger_, "Application is already unregistered.");
- return;
}
+ application_list_.erase(app_to_remove);
if (is_resuming) {
resume_ctrl_.SaveApplication(app_to_remove);