Skip to content

Commit

Permalink
Fix Swift6 Warnings
Browse files Browse the repository at this point in the history
  • Loading branch information
swhitty committed May 11, 2024
1 parent 78a46aa commit b3f2ed1
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 4 deletions.
22 changes: 19 additions & 3 deletions FlyingFox/Sources/WebSocket/AsyncStream+WSFrame.swift
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,30 @@ extension AsyncThrowingStream<WSFrame, any Error> {
extension AsyncStream<WSFrame> {

static func protocolFrames<S: AsyncSequence>(from frames: S) -> Self where S.Element == WSFrame {
var iterator: S.AsyncIterator? = frames.makeAsyncIterator()
let iterator = Iterator(from: frames)
return AsyncStream<WSFrame> {
do {
return try await iterator?.next()
return try await iterator.next()
} catch {
iterator = nil
iterator.close()
return .close(message: "Protocol Error")
}
}
}

private final class Iterator<S: AsyncSequence>: @unchecked Sendable where S.Element == WSFrame {
var iterator: S.AsyncIterator?

init(from frames: S){
self.iterator = frames.makeAsyncIterator()
}

func next() async throws -> WSFrame? {
try await iterator?.next()
}

func close() {
iterator = nil
}
}
}
2 changes: 1 addition & 1 deletion FlyingFox/Tests/WebSocket/AsyncStream+WSFrameTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ final class WSFrameSequenceTests: XCTestCase {
}

func testProtocolFrames_CatchErrors_AndCloseStream() async throws {
var continuation: AsyncThrowingStream<WSFrame, Error>.Continuation!
var continuation: AsyncThrowingStream<WSFrame, any Error>.Continuation!
let stream = AsyncThrowingStream<WSFrame, any Error> {
continuation = $0
}
Expand Down
14 changes: 14 additions & 0 deletions FlyingSocks/Sources/SocketAddress.swift
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,19 @@ public extension SocketAddress where Self == sockaddr_un {
}
}

#if compiler(>=6.0)
extension sockaddr_in: SocketAddress, @retroactive @unchecked Sendable {
public static let family = sa_family_t(AF_INET)
}

extension sockaddr_in6: SocketAddress, @retroactive @unchecked Sendable {
public static let family = sa_family_t(AF_INET6)
}

extension sockaddr_un: SocketAddress, @retroactive @unchecked Sendable {
public static let family = sa_family_t(AF_UNIX)
}
#else
extension sockaddr_in: SocketAddress, @unchecked Sendable {
public static let family = sa_family_t(AF_INET)
}
Expand All @@ -87,6 +100,7 @@ extension sockaddr_in6: SocketAddress, @unchecked Sendable {
extension sockaddr_un: SocketAddress, @unchecked Sendable {
public static let family = sa_family_t(AF_UNIX)
}
#endif

public extension SocketAddress {
static func make(from storage: sockaddr_storage) throws -> Self {
Expand Down

0 comments on commit b3f2ed1

Please sign in to comment.