mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 12:07:55 +00:00
Make ClientProxy.pauseServices async and drop its completion block
`pauseServices` took a completion block only because it was historically called from `deinit`, which can't await (the SE-0371 note). `deinit` now stops the sync itself, so the sole remaining caller is the AppCoordinator, which can await instead. Make `pauseServices` async and update the AppCoordinator background-task and lifecycle call sites to await it, calling the OS-facing completions (endBackgroundTask / setTaskCompleted) afterwards. This also removes the `MainActor.assumeIsolated` workaround — awaiting a @MainActor method hops onto the main actor cleanly — and fixes a latent bug where a nil `self` in the background app refresh expiration handler would skip setTaskCompleted.
This commit is contained in:
@@ -171,7 +171,7 @@ protocol ClientProxyProtocol: AnyObject {
|
||||
|
||||
func resumeServices() async
|
||||
|
||||
func pauseServices(completion: (() -> Void)?) // Hopefully this will become async once we get SE-0371.
|
||||
func pauseServices() async
|
||||
|
||||
func expireSyncSessions() async
|
||||
|
||||
|
||||
Reference in New Issue
Block a user