Skip to content

Commit e80046b

Browse files
authored
Fixing Issues with Async Upstream (#108)
### Motivation Fixing Issues with Building in Swift 6 for Linux ### Modifications * Fix Issues with Upstream Iterator ### Result Compatability with Swift 6 on Linux ### Test Plan TBD
1 parent acb1838 commit e80046b

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

Sources/OpenAPIRuntime/Multipart/MultipartFramesToRawPartsSequence.swift

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,8 +342,17 @@ extension MultipartFramesToRawPartsSequence {
342342
switch stateMachine.nextFromPartSequence() {
343343
case .returnNil: return nil
344344
case .fetchFrame:
345+
let frame: Upstream.AsyncIterator.Element?
345346
var upstream = upstream
346-
let frame = try await upstream.next()
347+
#if compiler(>=6.0)
348+
if #available(macOS 15, iOS 18.0, tvOS 18.0, watchOS 11.0, macCatalyst 18.0, visionOS 2.0, *) {
349+
frame = try await upstream.next(isolation: self)
350+
} else {
351+
frame = try await upstream.next()
352+
}
353+
#else
354+
frame = try await upstream.next()
355+
#endif
347356
self.upstream = upstream
348357
switch stateMachine.partReceivedFrame(frame) {
349358
case .returnNil: return nil
@@ -365,8 +374,17 @@ extension MultipartFramesToRawPartsSequence {
365374
switch stateMachine.nextFromBodySubsequence() {
366375
case .returnNil: return nil
367376
case .fetchFrame:
377+
let frame: Upstream.AsyncIterator.Element?
368378
var upstream = upstream
369-
let frame = try await upstream.next()
379+
#if compiler(>=6.0)
380+
if #available(macOS 15, iOS 18.0, tvOS 18.0, watchOS 11.0, macCatalyst 18.0, visionOS 2.0, *) {
381+
frame = try await upstream.next(isolation: self)
382+
} else {
383+
frame = try await upstream.next()
384+
}
385+
#else
386+
frame = try await upstream.next()
387+
#endif
370388
self.upstream = upstream
371389
switch stateMachine.bodyReceivedFrame(frame) {
372390
case .returnNil: return nil

0 commit comments

Comments
 (0)