@@ -353,8 +353,10 @@ final class StatusTableViewController: ChartsTableViewController {
353353 if currentContext. contains ( . carbs) {
354354 reloadGroup. enter ( )
355355 manager. carbStore. getCarbsOnBoardValues ( start: startDate, effectVelocities: manager. settings. dynamicCarbAbsorptionEnabled ? state. insulinCounteractionEffects : nil ) { ( values) in
356- cobValues = values
357- reloadGroup. leave ( )
356+ DispatchQueue . main. async {
357+ cobValues = values
358+ reloadGroup. leave ( )
359+ }
358360 }
359361 }
360362
@@ -364,49 +366,57 @@ final class StatusTableViewController: ChartsTableViewController {
364366 if currentContext. contains ( . glucose) {
365367 reloadGroup. enter ( )
366368 self . deviceManager. loopManager. glucoseStore. getCachedGlucoseSamples ( start: startDate) { ( values) -> Void in
367- glucoseValues = values
368- reloadGroup. leave ( )
369+ DispatchQueue . main. async {
370+ glucoseValues = values
371+ reloadGroup. leave ( )
372+ }
369373 }
370374 }
371375
372376 if currentContext. contains ( . insulin) {
373377 reloadGroup. enter ( )
374378 deviceManager. loopManager. doseStore. getInsulinOnBoardValues ( start: startDate) { ( result) -> Void in
375- switch result {
376- case . failure( let error) :
377- self . log. error ( " DoseStore failed to get insulin on board values: %{public}@ " , String ( describing: error) )
378- retryContext. update ( with: . insulin)
379- iobValues = [ ]
380- case . success( let values) :
381- iobValues = values
379+ DispatchQueue . main. async {
380+ switch result {
381+ case . failure( let error) :
382+ self . log. error ( " DoseStore failed to get insulin on board values: %{public}@ " , String ( describing: error) )
383+ retryContext. update ( with: . insulin)
384+ iobValues = [ ]
385+ case . success( let values) :
386+ iobValues = values
387+ }
388+ reloadGroup. leave ( )
382389 }
383- reloadGroup. leave ( )
384390 }
385391
386392 reloadGroup. enter ( )
387393 deviceManager. loopManager. doseStore. getNormalizedDoseEntries ( start: startDate) { ( result) -> Void in
388- switch result {
389- case . failure( let error) :
390- self . log. error ( " DoseStore failed to get normalized dose entries: %{public}@ " , String ( describing: error) )
391- retryContext. update ( with: . insulin)
392- doseEntries = [ ]
393- case . success( let doses) :
394- doseEntries = doses
394+ DispatchQueue . main. async {
395+ switch result {
396+ case . failure( let error) :
397+ self . log. error ( " DoseStore failed to get normalized dose entries: %{public}@ " , String ( describing: error) )
398+ retryContext. update ( with: . insulin)
399+ doseEntries = [ ]
400+ case . success( let doses) :
401+ doseEntries = doses
402+ }
403+ reloadGroup. leave ( )
395404 }
396- reloadGroup. leave ( )
397405 }
398406
399407 reloadGroup. enter ( )
400408 deviceManager. loopManager. doseStore. getTotalUnitsDelivered ( since: Calendar . current. startOfDay ( for: Date ( ) ) ) { ( result) in
401- switch result {
402- case . failure:
403- retryContext. update ( with: . insulin)
404- totalDelivery = nil
405- case . success( let total) :
406- totalDelivery = total. value
407- }
409+ DispatchQueue . main. async {
410+ switch result {
411+ case . failure:
412+ retryContext. update ( with: . insulin)
413+ totalDelivery = nil
414+ case . success( let total) :
415+ totalDelivery = total. value
416+ }
408417
409- reloadGroup. leave ( )
418+ reloadGroup. leave ( )
419+ }
410420 }
411421 }
412422
0 commit comments