Sfoglia il codice sorgente

setting delegate queue

Ivan Valkou 5 anni fa
parent
commit
9e95b60bda
1 ha cambiato i file con 4 aggiunte e 0 eliminazioni
  1. 4 0
      FreeAPS/Sources/APS/DeviceDataManager.swift

+ 4 - 0
FreeAPS/Sources/APS/DeviceDataManager.swift

@@ -38,6 +38,7 @@ final class BaseDeviceDataManager: DeviceDataManager, Injectable {
     var pumpManager: PumpManagerUI? {
     var pumpManager: PumpManagerUI? {
         didSet {
         didSet {
             pumpManager?.pumpManagerDelegate = self
             pumpManager?.pumpManagerDelegate = self
+            pumpManager?.delegateQueue = processQueue
             UserDefaults.standard.pumpManagerRawValue = pumpManager?.rawValue
             UserDefaults.standard.pumpManagerRawValue = pumpManager?.rawValue
             if let pumpManager = pumpManager {
             if let pumpManager = pumpManager {
                 pumpDisplayState.value = PumpDisplayState(name: pumpManager.localizedTitle, image: pumpManager.smallImage)
                 pumpDisplayState.value = PumpDisplayState(name: pumpManager.localizedTitle, image: pumpManager.smallImage)
@@ -138,6 +139,7 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
         lastReconciliation _: Date?,
         lastReconciliation _: Date?,
         completion: @escaping (_ error: Error?) -> Void
         completion: @escaping (_ error: Error?) -> Void
     ) {
     ) {
+        dispatchPrecondition(condition: .onQueue(processQueue))
         pumpHistoryStorage.storePumpEvents(events)
         pumpHistoryStorage.storePumpEvents(events)
         lastEventDate = events.last?.date
         lastEventDate = events.last?.date
         completion(nil)
         completion(nil)
@@ -152,6 +154,7 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
             Error
             Error
         >) -> Void
         >) -> Void
     ) {
     ) {
+        dispatchPrecondition(condition: .onQueue(processQueue))
         debug(.deviceManager, "Reservoir Value \(units), at: \(date)")
         debug(.deviceManager, "Reservoir Value \(units), at: \(date)")
         try? storage.save(Decimal(units), as: OpenAPS.Monitor.reservoir)
         try? storage.save(Decimal(units), as: OpenAPS.Monitor.reservoir)
         let batteryPercent = Int((pumpManager?.status.pumpBatteryChargeRemaining ?? 1) * 100)
         let batteryPercent = Int((pumpManager?.status.pumpBatteryChargeRemaining ?? 1) * 100)
@@ -165,6 +168,7 @@ extension BaseDeviceDataManager: PumpManagerDelegate {
     }
     }
 
 
     func pumpManagerRecommendsLoop(_: PumpManager) {
     func pumpManagerRecommendsLoop(_: PumpManager) {
+        dispatchPrecondition(condition: .onQueue(processQueue))
         debug(.deviceManager, "Recomends loop")
         debug(.deviceManager, "Recomends loop")
         recommendsLoop.send()
         recommendsLoop.send()
     }
     }