Continuous clock sleep not working (Swift 5.7)

Apple Swift version 5.7 (swiftlang-5.7.0.113.202 clang-1400.0.16.2)

// continuous version
let continuousClock = ContinuousClock()
let continuousElapsed = try await continuousClock.measure {
    try await Task.sleep(until: .now + .seconds(5), clock: .continuous)
}
print(continuousElapsed)


// suspending version
let suspendingClock = SuspendingClock()
let suspendingElapsed = try await suspendingClock.measure {
    try await Task.sleep(until: .now + .seconds(5), clock: .suspending)
}
print(suspendingElapsed)

result:

0.000126 seconds
5.324980708 seconds
1 Like

The suspending time is within a tolerance potential; the continuous is a bug. That bug I believe has already been addressed (it was a miscalculation with the conversion to dispatch_time_t).

3 Likes