summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrii Kalinich <AKalinich@luxoft.com>2019-10-24 09:16:27 -0400
committerAndrii Kalinich <AKalinich@luxoft.com>2019-10-24 09:56:54 -0400
commit32d697135fa021d2cf45366d4ebf0ac9e941accd (patch)
treeaf0c770536f1e2c809228dd0abc9a827f5061a7d
parent06e58a92960d7590657df599be554bf94eda39db (diff)
downloadsdl_core-fix/fix_synchronize_backup_and_reset_functions_in_cache.tar.gz
fixup! Synchronize backup and reset policy functionsfix/fix_synchronize_backup_and_reset_functions_in_cache
-rw-r--r--src/components/policy/policy_external/src/cache_manager.cc14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/components/policy/policy_external/src/cache_manager.cc b/src/components/policy/policy_external/src/cache_manager.cc
index 1c5b5bff6c..18b663469e 100644
--- a/src/components/policy/policy_external/src/cache_manager.cc
+++ b/src/components/policy/policy_external/src/cache_manager.cc
@@ -3132,10 +3132,6 @@ void CacheManager::BackgroundBackuper::threadMain() {
InternalBackup();
}
- if (new_data_available_ || stop_flag_) {
- continue;
- }
-
{
LOG4CXX_DEBUG(logger_, "Backup is done");
sync_primitives::AutoLock auto_lock(backup_done_lock_);
@@ -3143,6 +3139,10 @@ void CacheManager::BackgroundBackuper::threadMain() {
backup_done_.Broadcast();
}
+ if (new_data_available_ || stop_flag_) {
+ continue;
+ }
+
LOG4CXX_DEBUG(logger_, "Wait for a next backup");
backup_notifier_.Wait(need_backup_lock_);
}
@@ -3165,11 +3165,9 @@ void CacheManager::BackgroundBackuper::DoBackup() {
void CacheManager::BackgroundBackuper::WaitForBackupIsDone() {
LOG4CXX_AUTO_TRACE(logger_);
sync_primitives::AutoLock auto_lock(backup_done_lock_);
- if (!backup_is_in_progress_) {
- return;
+ if (backup_is_in_progress_) {
+ backup_done_.Wait(auto_lock);
}
-
- backup_done_.Wait(auto_lock);
}
EncryptionRequired CacheManager::GetAppEncryptionRequiredFlag(