@@ -425,7 +425,8 @@ extension PipeConfiguration {
425425 /// Run the pipeline using withTaskGroup
426426 private func runPipeline( ) async throws -> CollectedResult < Output , Error > {
427427 // 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 ( ) ) )
429430
430431 return try await withThrowingTaskGroup ( of: CollectedPipeResult . self, returning: CollectedResult< Output, Error> . self ) { group in
431432 // Collect error output from all stages
@@ -443,8 +444,8 @@ extension PipeConfiguration {
443444 // Create pipes between stages
444445 var pipes : [ ( readEnd: FileDescriptor , writeEnd: FileDescriptor ) ] = [ ]
445446 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 ( ) ) ) )
448449 }
449450
450451 let pipeResult = try await withThrowingTaskGroup ( of: PipelineTaskResult . self, returning: CollectedResult< Output, DiscardedOutput> . self ) { group in
0 commit comments