Files
openclaw/apps/shared/OpenClawKit/Tests/OpenClawKitTests/TestAsyncHelpers.swift
Peter Steinberger 091584b197 chore(swift): restore compact conditional bodies (#103832)
* style(swift): restore compact conditional bodies

* fix(ios): remove redundant startup timeout await

* chore(swift): sync native i18n inventory
2026-07-10 18:12:00 +01:00

21 lines
589 B
Swift

import Foundation
struct AsyncWaitTimeoutError: Error, CustomStringConvertible {
let label: String
var description: String { "Timeout waiting for: \(self.label)" }
}
func waitUntil(
_ label: String,
timeoutSeconds: Double = 3.0,
pollMs: UInt64 = 10,
_ condition: @escaping @Sendable () async -> Bool) async throws
{
let deadline = Date().addingTimeInterval(timeoutSeconds)
while Date() < deadline {
if await condition() { return }
try await Task.sleep(nanoseconds: pollMs * 1_000_000)
}
throw AsyncWaitTimeoutError(label: label)
}