@@ -441,7 +441,7 @@ public func launchTask(task: Task, standardInput: SignalProducer<NSData, NoError
441441 }
442442
443443 return SignalProducer { observer, disposable in
444- func startAggregating( producer: Pipe . ReadProducer ) -> AnyProperty < Aggregation ? > {
444+ func startAggregating( producer: Pipe . ReadProducer ) -> Pipe . ReadProducer {
445445 let aggregated = MutableProperty < Aggregation ? > ( nil )
446446
447447 producer. startWithSignal { signal, signalDisposable in
@@ -461,7 +461,10 @@ public func launchTask(task: Task, standardInput: SignalProducer<NSData, NoError
461461 } ) )
462462 }
463463
464- return AnyProperty ( aggregated)
464+ return aggregated. producer
465+ . ignoreNil ( )
466+ . promoteErrors ( TaskError . self)
467+ . flatMap ( . Concat) { $0. producer }
465468 }
466469
467470 let stdoutAggregated = startAggregating ( stdoutProducer)
@@ -472,28 +475,19 @@ public func launchTask(task: Task, standardInput: SignalProducer<NSData, NoError
472475
473476 dispatch_group_enter ( group)
474477 rawTask. terminationHandler = { nstask in
475- func getProducer( property: AnyProperty < Aggregation ? > ) -> Pipe . ReadProducer {
476- return property. producer
477- . ignoreNil ( )
478- . promoteErrors ( TaskError . self)
479- . flatMap ( . Concat) { $0. producer }
480- }
481- let stdoutAggregatedProducer = getProducer ( stdoutAggregated)
482- let stderrAggregatedProducer = getProducer ( stderrAggregated)
483-
484478 let terminationStatus = nstask. terminationStatus
485479 if terminationStatus == EXIT_SUCCESS {
486480 // Wait for stderr to finish, then pass
487481 // through stdout.
488- disposable += stderrAggregatedProducer
489- . then ( stdoutAggregatedProducer )
482+ disposable += stderrAggregated
483+ . then ( stdoutAggregated )
490484 . map ( TaskEvent . Success)
491485 . start ( observer)
492486 } else {
493487 // Wait for stdout to finish, then pass
494488 // through stderr.
495- disposable += stdoutAggregatedProducer
496- . then ( stderrAggregatedProducer )
489+ disposable += stdoutAggregated
490+ . then ( stderrAggregated )
497491 . flatMap ( . Concat) { data -> SignalProducer < TaskEvent < NSData > , TaskError > in
498492 let errorString = ( data. length > 0 ? NSString ( data: data, encoding: NSUTF8StringEncoding) as? String : nil )
499493 return SignalProducer ( error: . ShellTaskFailed( task, exitCode: terminationStatus, standardError: errorString) )
0 commit comments