Skip to content

Commit 9d01575

Browse files
committed
Remove definition and use of StreamOptions on Windows
1 parent d94a9c6 commit 9d01575

File tree

5 files changed

+23
-34
lines changed

5 files changed

+23
-34
lines changed

Sources/Subprocess/API.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ public func run<Result, Input: InputProtocol, Error: OutputProtocol>(
200200
}
201201

202202
// Body runs in the same isolation
203-
let outputSequence = AsyncBufferSequence(diskIO: outputIOBox.take()!.consumeDiskIO(), streamOptions: platformOptions.streamOptions)
203+
let outputSequence = AsyncBufferSequence(diskIO: outputIOBox.take()!.consumeDiskIO())
204204
let result = try await body(execution, outputSequence)
205205
try await group.waitForAll()
206206
return result
@@ -250,7 +250,7 @@ public func run<Result, Input: InputProtocol, Output: OutputProtocol>(
250250
}
251251

252252
// Body runs in the same isolation
253-
let errorSequence = AsyncBufferSequence(diskIO: errorIOBox.take()!.consumeDiskIO(), streamOptions: platformOptions.streamOptions)
253+
let errorSequence = AsyncBufferSequence(diskIO: errorIOBox.take()!.consumeDiskIO())
254254
let result = try await body(execution, errorSequence)
255255
try await group.waitForAll()
256256
return result
@@ -286,7 +286,7 @@ public func run<Result, Error: OutputProtocol>(
286286
error: try error.createPipe()
287287
) { execution, inputIO, outputIO, errorIO in
288288
let writer = StandardInputWriter(diskIO: inputIO!)
289-
let outputSequence = AsyncBufferSequence(diskIO: outputIO!.consumeDiskIO(), streamOptions: platformOptions.streamOptions)
289+
let outputSequence = AsyncBufferSequence(diskIO: outputIO!.consumeDiskIO())
290290
return try await body(execution, writer, outputSequence)
291291
}
292292
}
@@ -319,7 +319,7 @@ public func run<Result, Output: OutputProtocol>(
319319
error: try error.createPipe()
320320
) { execution, inputIO, outputIO, errorIO in
321321
let writer = StandardInputWriter(diskIO: inputIO!)
322-
let errorSequence = AsyncBufferSequence(diskIO: errorIO!.consumeDiskIO(), streamOptions: platformOptions.streamOptions)
322+
let errorSequence = AsyncBufferSequence(diskIO: errorIO!.consumeDiskIO())
323323
return try await body(execution, writer, errorSequence)
324324
}
325325
}
@@ -376,8 +376,8 @@ public func run<Result>(
376376
error: try error.createPipe()
377377
) { execution, inputIO, outputIO, errorIO in
378378
let writer = StandardInputWriter(diskIO: inputIO!)
379-
let outputSequence = AsyncBufferSequence(diskIO: outputIO!.consumeDiskIO(), streamOptions: platformOptions.streamOptions)
380-
let errorSequence = AsyncBufferSequence(diskIO: errorIO!.consumeDiskIO(), streamOptions: platformOptions.streamOptions)
379+
let outputSequence = AsyncBufferSequence(diskIO: outputIO!.consumeDiskIO())
380+
let errorSequence = AsyncBufferSequence(diskIO: errorIO!.consumeDiskIO())
381381
return try await body(execution, writer, outputSequence, errorSequence)
382382
}
383383
}
@@ -503,8 +503,8 @@ public func run<Result>(
503503
error: try error.createPipe()
504504
) { execution, inputIO, outputIO, errorIO in
505505
let writer = StandardInputWriter(diskIO: inputIO!)
506-
let outputSequence = AsyncBufferSequence(diskIO: outputIO!.consumeDiskIO(), streamOptions: configuration.platformOptions.streamOptions)
507-
let errorSequence = AsyncBufferSequence(diskIO: errorIO!.consumeDiskIO(), streamOptions: configuration.platformOptions.streamOptions)
506+
let outputSequence = AsyncBufferSequence(diskIO: outputIO!.consumeDiskIO())
507+
let errorSequence = AsyncBufferSequence(diskIO: errorIO!.consumeDiskIO())
508508
return try await body(execution, writer, outputSequence, errorSequence)
509509
}
510510
}

Sources/Subprocess/AsyncBufferSequence.swift

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public struct AsyncBufferSequence: AsyncSequence, Sendable {
4545
private let continuation: Stream.Continuation
4646
private var bytesRemaining: Int
4747

48-
internal init(diskIO: DiskIO, streamOptions: PlatformOptions.StreamOptions) {
48+
internal init(diskIO: DiskIO) {
4949
self.diskIO = diskIO
5050
self.buffer = []
5151
self.currentPosition = 0
@@ -54,16 +54,6 @@ public struct AsyncBufferSequence: AsyncSequence, Sendable {
5454
self.streamIterator = stream.makeAsyncIterator()
5555
self.continuation = continuation
5656
self.bytesRemaining = 0
57-
58-
#if !os(Windows)
59-
if let minimumBufferSize = streamOptions.minimumBufferSize {
60-
diskIO.setLimit(lowWater: minimumBufferSize)
61-
}
62-
63-
if let maximumBufferSize = streamOptions.maximumBufferSize {
64-
diskIO.setLimit(highWater: maximumBufferSize)
65-
}
66-
#endif
6757
}
6858

6959
public mutating func next() async throws -> Buffer? {
@@ -103,15 +93,13 @@ public struct AsyncBufferSequence: AsyncSequence, Sendable {
10393
}
10494

10595
private let diskIO: DiskIO
106-
private let streamOptions: PlatformOptions.StreamOptions
10796

108-
internal init(diskIO: DiskIO, streamOptions: PlatformOptions.StreamOptions) {
97+
internal init(diskIO: DiskIO) {
10998
self.diskIO = diskIO
110-
self.streamOptions = streamOptions
11199
}
112100

113101
public func makeAsyncIterator() -> Iterator {
114-
return Iterator(diskIO: self.diskIO, streamOptions: streamOptions)
102+
return Iterator(diskIO: self.diskIO)
115103
}
116104
}
117105

Sources/Subprocess/Platforms/Subprocess+Darwin.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -456,9 +456,9 @@ extension Configuration {
456456
)
457457
return SpawnResult(
458458
execution: execution,
459-
inputWriteEnd: inputWriteFileDescriptor?.createPlatformDiskIO(),
460-
outputReadEnd: outputReadFileDescriptor?.createPlatformDiskIO(),
461-
errorReadEnd: errorReadFileDescriptor?.createPlatformDiskIO()
459+
inputWriteEnd: inputWriteFileDescriptor?.createPlatformDiskIO(with: platformOptions.streamOptions),
460+
outputReadEnd: outputReadFileDescriptor?.createPlatformDiskIO(with: platformOptions.streamOptions),
461+
errorReadEnd: errorReadFileDescriptor?.createPlatformDiskIO(with: platformOptions.streamOptions)
462462
)
463463
}
464464

Sources/Subprocess/Platforms/Subprocess+Unix.swift

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,7 @@ internal typealias PlatformFileDescriptor = CInt
393393
internal typealias TrackedPlatformDiskIO = TrackedDispatchIO
394394

395395
extension TrackedFileDescriptor {
396-
internal consuming func createPlatformDiskIO() -> TrackedPlatformDiskIO {
396+
internal consuming func createPlatformDiskIO(with streamOptions: PlatformOptions.StreamOptions) -> TrackedPlatformDiskIO {
397397
let dispatchIO: DispatchIO = DispatchIO(
398398
type: .stream,
399399
fileDescriptor: self.platformDescriptor(),
@@ -406,6 +406,14 @@ extension TrackedFileDescriptor {
406406
}
407407
)
408408

409+
if let minimumBufferSize = streamOptions.minimumBufferSize {
410+
dispatchIO.setLimit(lowWater: minimumBufferSize)
411+
}
412+
413+
if let maximumBufferSize = streamOptions.maximumBufferSize {
414+
dispatchIO.setLimit(highWater: maximumBufferSize)
415+
}
416+
409417
return .init(dispatchIO, closeWhenDone: self.closeWhenDone)
410418
}
411419
}

Sources/Subprocess/Platforms/Subprocess+Windows.swift

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -417,7 +417,6 @@ public struct PlatformOptions: Sendable {
417417
/// process in case the parent task is cancelled before
418418
/// the child proces terminates.
419419
/// Always ends in forcefully terminate at the end.
420-
internal var streamOptions: StreamOptions = .init()
421420
public var teardownSequence: [TeardownStep] = []
422421
/// A closure to configure platform-specific
423422
/// spawning constructs. This closure enables direct
@@ -442,12 +441,6 @@ public struct PlatformOptions: Sendable {
442441
public init() {}
443442
}
444443

445-
extension PlatformOptions {
446-
internal struct StreamOptions: Sendable {
447-
internal init() {}
448-
}
449-
}
450-
451444
extension PlatformOptions: CustomStringConvertible, CustomDebugStringConvertible {
452445
internal func description(withIndent indent: Int) -> String {
453446
let indent = String(repeating: " ", count: indent * 4)

0 commit comments

Comments
 (0)