Initial Release
Usage is similar to using task groups:
let val = try await withThrowingTimeout(seconds: 1.5) {
try await perform()
}
The provided closure is performed within a child task. If the timeout expires before a value is returned the task is cancelled and TimeoutError
is thrown.