Unblock the UI when trying to update dn managed sites (#125)

This commit is contained in:
Nate Brown 2023-05-15 16:10:50 -05:00 committed by GitHub
parent cfca253ec1
commit 450e7c714c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 10 additions and 6 deletions

View File

@ -6,13 +6,17 @@ class DNUpdater {
func updateAll(onUpdate: @escaping (Site) -> ()) {
_ = SiteList{ (sites, _) -> () in
sites?.values.forEach { site in
if (site.connected == true) {
// The vpn service is in charge of updating the currently connected site
return
}
// NEVPN seems to force us onto the main thread and we are about to make network calls that
// could block for a while. Push ourselves onto another thread to avoid blocking the UI.
Task.detached(priority: .userInitiated) {
sites?.values.forEach { site in
if (site.connected == true) {
// The vpn service is in charge of updating the currently connected site
return
}
self.updateSite(site: site, onUpdate: onUpdate)
self.updateSite(site: site, onUpdate: onUpdate)
}
}
}
}