perf: move gateway env checks off main

This commit is contained in:
Peter Steinberger
2025-12-19 17:54:18 +01:00
parent a019d3cd83
commit 5e7d12fefa
3 changed files with 21 additions and 4 deletions

View File

@@ -142,7 +142,12 @@ final class GatewayProcessManager {
} }
func refreshEnvironmentStatus() { func refreshEnvironmentStatus() {
self.environmentStatus = GatewayEnvironment.check() Task {
let status = await Task.detached(priority: .utility) {
GatewayEnvironment.check()
}.value
self.environmentStatus = status
}
} }
// MARK: - Internals // MARK: - Internals
@@ -189,7 +194,9 @@ final class GatewayProcessManager {
self.status = .starting self.status = .starting
} }
self.existingGatewayDetails = nil self.existingGatewayDetails = nil
let resolution = GatewayEnvironment.resolveGatewayCommand() let resolution = await Task.detached(priority: .utility) {
GatewayEnvironment.resolveGatewayCommand()
}.value
await MainActor.run { self.environmentStatus = resolution.status } await MainActor.run { self.environmentStatus = resolution.status }
guard let command = resolution.command else { guard let command = resolution.command else {
await MainActor.run { await MainActor.run {

View File

@@ -382,7 +382,12 @@ struct GeneralSettings: View {
} }
private func refreshGatewayStatus() { private func refreshGatewayStatus() {
self.gatewayStatus = GatewayEnvironment.check() Task {
let status = await Task.detached(priority: .utility) {
GatewayEnvironment.check()
}.value
self.gatewayStatus = status
}
} }
private func installGateway() async { private func installGateway() async {

View File

@@ -1235,7 +1235,12 @@ struct OnboardingView: View {
} }
private func refreshGatewayStatus() { private func refreshGatewayStatus() {
self.gatewayStatus = GatewayEnvironment.check() Task {
let status = await Task.detached(priority: .utility) {
GatewayEnvironment.check()
}.value
self.gatewayStatus = status
}
} }
private func installGateway() async { private func installGateway() async {