From b85358a0b89cb3bed02fb6ccd06c3c40af31ef6a Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Wed, 29 Mar 2017 22:59:30 -0700 Subject: [PATCH] Fix pull to sync bug caused by manipulating core date in background thread --- pass/Models/PasswordStore.swift | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/pass/Models/PasswordStore.swift b/pass/Models/PasswordStore.swift index f506708..f2290c3 100644 --- a/pass/Models/PasswordStore.swift +++ b/pass/Models/PasswordStore.swift @@ -302,10 +302,11 @@ class PasswordStore { } storeRepository = try GTRepository(url: storeURL) gitCredential = credential - self.updatePasswordEntityCoreData() Defaults[.lastSyncedTime] = Date() - - NotificationCenter.default.post(name: .passwordStoreUpdated, object: nil) + DispatchQueue.main.async { + NotificationCenter.default.post(name: .passwordStoreUpdated, object: nil) + self.updatePasswordEntityCoreData() + } } func pullRepository(transferProgressBlock: @escaping (UnsafePointer, UnsafeMutablePointer) -> Void) throws { @@ -318,11 +319,12 @@ class PasswordStore { ] let remote = try GTRemote(name: "origin", in: storeRepository!) try storeRepository?.pull((storeRepository?.currentBranch())!, from: remote, withOptions: options, progress: transferProgressBlock) - self.setAllSynced() - self.updatePasswordEntityCoreData() Defaults[.lastSyncedTime] = Date() - - NotificationCenter.default.post(name: .passwordStoreUpdated, object: nil) + DispatchQueue.main.async { + self.setAllSynced() + self.updatePasswordEntityCoreData() + NotificationCenter.default.post(name: .passwordStoreUpdated, object: nil) + } } private func updatePasswordEntityCoreData() {