Return to main queue after getting notified of the dispatch group completion. Fixes #2863

This commit is contained in:
Maurice Parker 2021-03-09 04:23:19 -06:00
parent 2b816fee4b
commit 2dd475e71d
1 changed files with 16 additions and 14 deletions

View File

@ -310,20 +310,22 @@ final class CloudKitAccountDelegate: AccountDelegate {
} }
group.notify(queue: DispatchQueue.global(qos: .background)) { group.notify(queue: DispatchQueue.global(qos: .background)) {
guard !errorOccurred else { DispatchQueue.main.async {
self.refreshProgress.completeTask() guard !errorOccurred else {
completion(.failure(CloudKitAccountDelegateError.unknown)) self.refreshProgress.completeTask()
return completion(.failure(CloudKitAccountDelegateError.unknown))
} return
}
self.accountZone.removeFolder(folder) { result in
self.refreshProgress.completeTask() self.accountZone.removeFolder(folder) { result in
switch result { self.refreshProgress.completeTask()
case .success: switch result {
account.removeFolder(folder) case .success:
completion(.success(())) account.removeFolder(folder)
case .failure(let error): completion(.success(()))
completion(.failure(error)) case .failure(let error):
completion(.failure(error))
}
} }
} }
} }