From 806c285481b5bdd1d45fe36ef7c30516c2ba8eb4 Mon Sep 17 00:00:00 2001 From: abhijeet117 Date: Wed, 28 Jan 2026 21:05:51 +0530 Subject: [PATCH] Use structured concurrency instead of Task.detached in GatewayDiscoveryModel --- .../Sources/MoltbotDiscovery/GatewayDiscoveryModel.swift | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/macos/Sources/MoltbotDiscovery/GatewayDiscoveryModel.swift b/apps/macos/Sources/MoltbotDiscovery/GatewayDiscoveryModel.swift index 69d8978ec..a927c24b9 100644 --- a/apps/macos/Sources/MoltbotDiscovery/GatewayDiscoveryModel.swift +++ b/apps/macos/Sources/MoltbotDiscovery/GatewayDiscoveryModel.swift @@ -114,7 +114,8 @@ public final class GatewayDiscoveryModel { public func refreshWideAreaFallbackNow(timeoutSeconds: TimeInterval = 5.0) { let domain = MoltbotBonjour.wideAreaGatewayServiceDomain - Task.detached(priority: .utility) { [weak self] in + Task(priority: .utility) { [weak self] in + guard let self else { return } let beacons = WideAreaGatewayDiscovery.discover(timeoutSeconds: timeoutSeconds) await MainActor.run { [weak self] in @@ -246,7 +247,8 @@ public final class GatewayDiscoveryModel { let domain = MoltbotBonjour.wideAreaGatewayServiceDomain if Self.isRunningTests { return } guard self.wideAreaFallbackTask == nil else { return } - self.wideAreaFallbackTask = Task.detached(priority: .utility) { [weak self] in + self.wideAreaFallbackTask = Task(priority: .utility) { [weak self] in + guard let self else { return } var attempt = 0 let startedAt = Date() @@ -513,7 +515,7 @@ public final class GatewayDiscoveryModel { private func refreshLocalIdentity() { let fastIdentity = self.localIdentity let displayName = self.localDisplayName - Task.detached(priority: .utility) { + Task(priority: .utility) { let slowIdentity = Self.buildLocalIdentitySlow(displayName: displayName) let merged = Self.mergeLocalIdentity(fast: fastIdentity, slow: slowIdentity) await MainActor.run { [weak self] in