From 32d697135fa021d2cf45366d4ebf0ac9e941accd Mon Sep 17 00:00:00 2001 From: Andrii Kalinich Date: Thu, 24 Oct 2019 09:16:27 -0400 Subject: fixup! Synchronize backup and reset policy functions --- src/components/policy/policy_external/src/cache_manager.cc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'src') 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( -- cgit v1.2.1