From 4e0fe7b5f114556d8a587f15358aace8169d39c6 Mon Sep 17 00:00:00 2001 From: Maurice Parker Date: Wed, 27 Nov 2019 18:03:19 -0600 Subject: [PATCH] Fix retain loop in background refresh. --- iOS/AppDelegate.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/iOS/AppDelegate.swift b/iOS/AppDelegate.swift index ffe110f6c..db8ae9a94 100644 --- a/iOS/AppDelegate.swift +++ b/iOS/AppDelegate.swift @@ -312,18 +312,18 @@ private extension AppDelegate { os_log("Woken to perform account refresh.", log: self.log, type: .info) - DispatchQueue.main.async { + DispatchQueue.main.async { [weak task] in AccountManager.shared.refreshAll(errorHandler: ErrorHandler.log) { AccountManager.shared.saveAll() os_log("Account refresh operation completed.", log: self.log, type: .info) - task.setTaskCompleted(success: true) + task?.setTaskCompleted(success: true) } } // set expiration handler - task.expirationHandler = { + task.expirationHandler = { [weak task] in os_log("Accounts refresh processing terminated for running too long.", log: self.log, type: .info) - task.setTaskCompleted(success: false) + task?.setTaskCompleted(success: false) } }