attempt to fix issue where race condition can happen

sync2
Laurent 9 months ago
parent bbf7e8fa8b
commit 339df068a8
  1. 4
      LeStorage/ApiCallCollection.swift

@ -216,7 +216,7 @@ actor ApiCallCollection<T: Storable>: SomeCallCollection {
/// Returns an APICall instance for the Storable [instance] and an HTTP [method]
/// The method updates existing calls or creates a new one
fileprivate func _callForInstance(_ instance: T, method: HTTPMethod) throws -> ApiCall<T>? {
fileprivate func _callForInstance(_ instance: T, method: HTTPMethod) async throws -> ApiCall<T>? {
if let existingCall = self.items.first(where: { $0.dataId == instance.stringId }) {
switch method {
@ -293,7 +293,7 @@ actor ApiCallCollection<T: Storable>: SomeCallCollection {
/// Initiates the process of sending the data with the server
fileprivate func _synchronize<V: Decodable>(_ instance: T, method: HTTPMethod) async throws -> V? {
if let apiCall = try self._callForInstance(instance, method: method) {
if let apiCall = try await self._callForInstance(instance, method: method) {
self._prepareCall(apiCall: apiCall)
return try await self._executeApiCall(apiCall)
} else {

Loading…
Cancel
Save