@@ -273,6 +273,16 @@ internal struct SendableCollectedResult: @unchecked Sendable {
273
273
}
274
274
}
275
275
276
+ private func currentProcessIdentifier( ) -> ProcessIdentifier {
277
+ #if os(macOS)
278
+ return . init( value: ProcessInfo . processInfo. processIdentifier)
279
+ #elseif canImport(Glibc) || canImport(Android) || canImport(Musl)
280
+ return . init( value: ProcessInfo . processInfo. processIdentifier, processDescriptor: - 1 )
281
+ #elseif os(Windows)
282
+ return . init( value: ProcessInfo . processInfo. processIdentifier, processDescriptor: nil , threadHandle: nil )
283
+ #endif
284
+ }
285
+
276
286
// MARK: - Internal Functions
277
287
278
288
extension PipeConfiguration {
@@ -446,7 +456,7 @@ extension PipeConfiguration {
446
456
0 ,
447
457
SendableCollectedResult (
448
458
CollectedResult < FileDescriptorOutput , DiscardedOutput > (
449
- processIdentifier: . init ( value : ProcessInfo . processInfo . processIdentifier) ,
459
+ processIdentifier: originalResult . processIdentifier,
450
460
terminationStatus: originalResult. terminationStatus,
451
461
standardOutput: ( ) ,
452
462
standardError: ( )
@@ -463,7 +473,7 @@ extension PipeConfiguration {
463
473
0 ,
464
474
SendableCollectedResult (
465
475
CollectedResult < FileDescriptorOutput , DiscardedOutput > (
466
- processIdentifier: . init ( value : ProcessInfo . processInfo . processIdentifier) ,
476
+ processIdentifier: originalResult . processIdentifier,
467
477
terminationStatus: originalResult. terminationStatus,
468
478
standardOutput: ( ) ,
469
479
standardError: ( )
@@ -482,7 +492,7 @@ extension PipeConfiguration {
482
492
0 ,
483
493
SendableCollectedResult (
484
494
CollectedResult < FileDescriptorOutput , DiscardedOutput > (
485
- processIdentifier: . init ( value : ProcessInfo . processInfo . processIdentifier) ,
495
+ processIdentifier: originalResult . processIdentifier,
486
496
terminationStatus: originalResult. terminationStatus,
487
497
standardOutput: ( ) ,
488
498
standardError: ( )
@@ -546,7 +556,7 @@ extension PipeConfiguration {
546
556
0 ,
547
557
SendableCollectedResult (
548
558
CollectedResult < FileDescriptorOutput , DiscardedOutput > (
549
- processIdentifier: . init ( value : ProcessInfo . processInfo . processIdentifier ) ,
559
+ processIdentifier: currentProcessIdentifier ( ) ,
550
560
terminationStatus: . exited( result) ,
551
561
standardOutput: ( ) ,
552
562
standardError: ( )
@@ -581,7 +591,7 @@ extension PipeConfiguration {
581
591
i,
582
592
SendableCollectedResult (
583
593
CollectedResult < FileDescriptorOutput , DiscardedOutput > (
584
- processIdentifier: . init ( value : ProcessInfo . processInfo . processIdentifier) ,
594
+ processIdentifier: originalResult . processIdentifier,
585
595
terminationStatus: originalResult. terminationStatus,
586
596
standardOutput: ( ) ,
587
597
standardError: ( )
@@ -598,7 +608,7 @@ extension PipeConfiguration {
598
608
i,
599
609
SendableCollectedResult (
600
610
CollectedResult < FileDescriptorOutput , DiscardedOutput > (
601
- processIdentifier: . init ( value : ProcessInfo . processInfo . processIdentifier) ,
611
+ processIdentifier: originalResult . processIdentifier,
602
612
terminationStatus: originalResult. terminationStatus,
603
613
standardOutput: ( ) ,
604
614
standardError: ( )
@@ -617,7 +627,7 @@ extension PipeConfiguration {
617
627
i,
618
628
SendableCollectedResult (
619
629
CollectedResult < FileDescriptorOutput , DiscardedOutput > (
620
- processIdentifier: . init ( value : ProcessInfo . processInfo . processIdentifier) ,
630
+ processIdentifier: originalResult . processIdentifier,
621
631
terminationStatus: originalResult. terminationStatus,
622
632
standardOutput: ( ) ,
623
633
standardError: ( )
@@ -659,7 +669,7 @@ extension PipeConfiguration {
659
669
i,
660
670
SendableCollectedResult (
661
671
CollectedResult < FileDescriptorOutput , DiscardedOutput > (
662
- processIdentifier: . init ( value : ProcessInfo . processInfo . processIdentifier ) ,
672
+ processIdentifier: currentProcessIdentifier ( ) ,
663
673
terminationStatus: . exited( result) ,
664
674
standardOutput: ( ) ,
665
675
standardError: ( )
@@ -837,7 +847,7 @@ extension PipeConfiguration {
837
847
lastIndex,
838
848
SendableCollectedResult (
839
849
CollectedResult < Output , DiscardedOutput > (
840
- processIdentifier: . init ( value : ProcessInfo . processInfo . processIdentifier ) ,
850
+ processIdentifier: currentProcessIdentifier ( ) ,
841
851
terminationStatus: . exited( result. 0 ) ,
842
852
standardOutput: result. 1 ,
843
853
standardError: ( )
0 commit comments