// @available(macOS 10.16, iOS 14.0, watchOS 7.0, tvOS 14.0, *) internal func valueOrErrno<I: FixedWidthInteger>( retryOnInterrupt: Bool, _ f: () -> I ) -> Result<I, Errno> { repeat { switch valueOrErrno(f()) { case .success(let r): return .success(r) case .failure(let err): guard retryOnInterrupt && err == .interrupted else { return .failure(err) } break } } while true }