diff --git a/LeStorage/StoreCenter.swift b/LeStorage/StoreCenter.swift index f45f493..1304092 100644 --- a/LeStorage/StoreCenter.swift +++ b/LeStorage/StoreCenter.swift @@ -20,7 +20,7 @@ public class StoreCenter { fileprivate var _stores: [String: Store] = [:] /// Returns a default Store instance - lazy var mainStore: Store = { Store(storeCenter: self) }() + public lazy var mainStore: Store = { Store(storeCenter: self) }() /// A KeychainStore object used to store the user's token var tokenKeychain: KeychainService? = nil @@ -706,12 +706,13 @@ public class StoreCenter { fileprivate func _syncRevoke(_ revokeArrays: [ObjectIdentifierArray]) { - for revokeArray in revokeArrays { - for revoked in revokeArray.items { - self.synchronizationRevoke(id: revoked.modelId, type: revokeArray.type, storeId: revoked.storeId) + Task { + for revokeArray in revokeArrays { + for revoked in revokeArray.items { + await self.synchronizationRevoke(id: revoked.modelId, type: revokeArray.type, storeId: revoked.storeId) + } } } - } /// Returns a Type object for a class name @@ -772,20 +773,18 @@ public class StoreCenter { } /// Revokes a data that has been shared with the user + @MainActor func synchronizationRevoke(id: String, type: T.Type, storeId: String?) { - DispatchQueue.main.async { - do { -// let type = try self.classFromName(model) - if self._instanceShared(id: id, type: type) { - let count = self.mainStore.referenceCount(type: type, id: id) - if count == 0 { - try self._store(id: storeId).deleteNoSync(type: type, id: id) - } + do { + if self._instanceShared(id: id, type: type) { + let count = self.mainStore.referenceCount(type: type, id: id) + if count == 0 { + try self._store(id: storeId).deleteNoSync(type: type, id: id) } - } catch { - Logger.error(error) } + } catch { + Logger.error(error) } }