Import System package when available (#34)
* Import System package when available * Add isResourceTemporarilyUnavailable helper method to reduce number of imports of System / SystemPackage
This commit is contained in:
parent
97b756c0f4
commit
d55140bc46
1 changed files with 42 additions and 9 deletions
|
|
@ -1,9 +1,14 @@
|
|||
import Darwin
|
||||
import Logging
|
||||
import SystemPackage
|
||||
|
||||
import struct Foundation.Data
|
||||
|
||||
#if canImport(System)
|
||||
import System
|
||||
#else
|
||||
@preconcurrency import SystemPackage
|
||||
#endif
|
||||
|
||||
/// Protocol defining the transport layer for MCP communication
|
||||
public protocol Transport: Actor {
|
||||
var logger: Logger { get }
|
||||
|
|
@ -107,7 +112,7 @@ public actor StdioTransport: Transport {
|
|||
messageContinuation.yield(message)
|
||||
}
|
||||
}
|
||||
} catch let error as Errno where error == .resourceTemporarilyUnavailable {
|
||||
} catch let error where Error.isResourceTemporarilyUnavailable(error) {
|
||||
try? await Task.sleep(nanoseconds: 10_000_000) // 10ms backoff
|
||||
continue
|
||||
} catch {
|
||||
|
|
@ -147,7 +152,7 @@ public actor StdioTransport: Transport {
|
|||
if written > 0 {
|
||||
remaining = remaining.dropFirst(written)
|
||||
}
|
||||
} catch let error as Errno where error == .resourceTemporarilyUnavailable {
|
||||
} catch let error where Error.isResourceTemporarilyUnavailable(error) {
|
||||
try await Task.sleep(nanoseconds: 10_000_000) // 10ms backoff
|
||||
continue
|
||||
} catch {
|
||||
|
|
|
|||
Loading…
Reference in a new issue