diff options
-rw-r--r-- | src/components/policy/policy_external/src/cache_manager.cc | 14 |
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( |