Avatar
omochimetaru 9/26/2020 5:43 AM
// @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 }
5:43 AM
retryOnInterruptの実装はこのユーティリティで共通化してあるみたい。
5:44 AM
シグナル割り込みって普通にエラー飛べば良いと思ってたんだけどこのライブラリではデフォルトは再試行らしい。