murky 8270 retries

This commit is contained in:
Ian Gulliver
2026-10-20 16:08:38 -07:00
parent 9972ce4d6e
commit 4c414d9838
3 changed files with 20 additions and 1 deletions
+13
View File
@@ -194,6 +194,7 @@ final class Tailnet {
private(set) var searched = false
private(set) var peers: Set<String> = []
@ObservationIgnored private var servers: [URL] = []
@ObservationIgnored var serviceWatchers = 0
var running: Bool {
state == "Running"
@@ -232,7 +233,13 @@ final class Tailnet {
private func watchService() async {
var loopback: URL?
var asked: ContinuousClock.Instant?
while true {
if serviceWatchers == 0, let asked, asked.duration(to: .now) < .seconds(30) {
try? await Task.sleep(for: .seconds(2))
continue
}
asked = .now
if loopback == nil {
do {
loopback = URL(string: try await Server.checks().loopback)
@@ -314,6 +321,12 @@ struct TailnetLoginView: View {
.frame(width: 460)
.padding(.vertical, 24)
.frame(maxWidth: .infinity, maxHeight: .infinity)
.onAppear {
Tailnet.shared.serviceWatchers += 1
}
.onDisappear {
Tailnet.shared.serviceWatchers -= 1
}
}
}