@@ -425,7 +425,8 @@ extension PipeConfiguration {
425
425
/// Run the pipeline using withTaskGroup
426
426
private func runPipeline( ) async throws -> CollectedResult < Output , Error > {
427
427
// Create a pipe for standard error
428
- let sharedErrorPipe = try FileDescriptor . pipe ( )
428
+ var sharedErrorCreatedPipe = try CreatedPipe ( closeWhenDone: false , purpose: . output)
429
+ let sharedErrorPipe = ( readEnd: FileDescriptor ( rawValue: sharedErrorCreatedPipe. readFileDescriptor ( ) !. platformDescriptor ( ) ) , writeEnd: FileDescriptor ( rawValue: sharedErrorCreatedPipe. writeFileDescriptor ( ) !. platformDescriptor ( ) ) )
429
430
430
431
return try await withThrowingTaskGroup ( of: CollectedPipeResult . self, returning: CollectedResult< Output, Error> . self ) { group in
431
432
// Collect error output from all stages
@@ -443,8 +444,8 @@ extension PipeConfiguration {
443
444
// Create pipes between stages
444
445
var pipes : [ ( readEnd: FileDescriptor , writeEnd: FileDescriptor ) ] = [ ]
445
446
for _ in 0 ..< ( stages. count - 1 ) {
446
- let pipe = try FileDescriptor . pipe ( )
447
- pipes. append ( ( readEnd: pipe. readEnd , writeEnd: pipe. writeEnd ) )
447
+ var pipe = try CreatedPipe ( closeWhenDone : false , purpose : . input )
448
+ pipes. append ( ( readEnd: FileDescriptor ( rawValue : pipe. readFileDescriptor ( ) ! . platformDescriptor ( ) ) , writeEnd: FileDescriptor ( rawValue : pipe. writeFileDescriptor ( ) ! . platformDescriptor ( ) ) ) )
448
449
}
449
450
450
451
let pipeResult = try await withThrowingTaskGroup ( of: PipelineTaskResult . self, returning: CollectedResult< Output, DiscardedOutput> . self ) { group in
0 commit comments