diff --git a/LeStorage/StoredCollection.swift b/LeStorage/StoredCollection.swift index d5a0c32..3f70687 100644 --- a/LeStorage/StoredCollection.swift +++ b/LeStorage/StoredCollection.swift @@ -500,8 +500,8 @@ public class StoredCollection: SomeCollection { /// Schedules a write operation fileprivate func _scheduleWrite() { - DispatchQueue(label: "lestorage.queue.write", qos: .utility).asyncAndWait { - self._cleanTimer() + self._cleanTimer() + DispatchQueue.main.async { self._writingTimer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(self._write), userInfo: nil, repeats: false) } } @@ -513,13 +513,15 @@ public class StoredCollection: SomeCollection { /// Writes all the items as a json array inside a file @objc fileprivate func _write() { - do { - let jsonString: String = try self.items.jsonString() - try self.store.write(content: jsonString, fileName: T.fileName()) - } catch { - Logger.error(error) - self.storeCenter.log( - message: "write failed for \(T.resourceName()): \(error.localizedDescription)") + DispatchQueue(label: "lestorage.queue.write", qos: .utility).async { + do { + let jsonString: String = try self.items.jsonString() + try self.store.write(content: jsonString, fileName: T.fileName()) + } catch { + Logger.error(error) + self.storeCenter.log( + message: "write failed for \(T.resourceName()): \(error.localizedDescription)") + } } self._cleanTimer() }