Quellcode durchsuchen

sync heartbeat on queue

Ivan Valkou vor 5 Jahren
Ursprung
Commit
ac2e0875d2
1 geänderte Dateien mit 8 neuen und 5 gelöschten Zeilen
  1. 8 5
      FreeAPS/Sources/APS/DeviceDataManager.swift

+ 8 - 5
FreeAPS/Sources/APS/DeviceDataManager.swift

@@ -26,6 +26,7 @@ private let staticPumpManagersByIdentifier: [String: PumpManagerUI.Type] = stati
 }
 }
 
 
 final class BaseDeviceDataManager: DeviceDataManager, Injectable {
 final class BaseDeviceDataManager: DeviceDataManager, Injectable {
+    private let processQueue = DispatchQueue(label: "BaseDeviceDataManager.processQueue")
     @Injected() private var pumpHistoryStorage: PumpHistoryStorage!
     @Injected() private var pumpHistoryStorage: PumpHistoryStorage!
     @Injected() private var storage: FileStorage!
     @Injected() private var storage: FileStorage!
 
 
@@ -69,11 +70,13 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
     }
     }
 
 
     private func updatePumpData() {
     private func updatePumpData() {
-        let now = Date()
-        guard now.timeIntervalSince(lastHeartBeatTime) >= Config.loopInterval else { return }
-        pumpManager?.ensureCurrentPumpData {
-            debug(.deviceManager, "Pump Data updated")
-            self.lastHeartBeatTime = now
+        processQueue.async {
+            let now = Date()
+            guard now.timeIntervalSince(self.lastHeartBeatTime) >= Config.loopInterval else { return }
+            self.pumpManager?.ensureCurrentPumpData {
+                debug(.deviceManager, "Pump Data updated")
+                self.lastHeartBeatTime = now
+            }
         }
         }
     }
     }