 	/// Returns a producer that will complete or error.
 	func writeDataFromProducer(producer: SignalProducer<NSData, NoError>) -> SignalProducer<(), ReactiveTaskError> {
 		return SignalProducer { observer, disposable in
-			let queue = dispatch_queue_create("org.carthage.ReactiveTask.Pipe.writeQueue", DISPATCH_QUEUE_SERIAL)
-			let channel = dispatch_io_create(DISPATCH_IO_STREAM, self.writeFD, queue) { error in
+			let channel = dispatch_io_create(DISPATCH_IO_STREAM, self.writeFD, self.queue) { error in
 				if error == 0 {
 					sendCompleted(observer)
 				} else {

/// upon success.
public func launchTask(taskDescription: TaskDescription, standardOutput: SinkOf<NSData>? = nil, standardError: SinkOf<NSData>? = nil) -> SignalProducer<NSData, ReactiveTaskError> {
	return SignalProducer { observer, disposable in
		let task = NSTask()
		task.launchPath = taskDescription.launchPath
		task.arguments = taskDescription.arguments

				disposable.addDisposable(producerDisposable)

				signal.observe(next: { data in
					let dispatchData = dispatch_data_create(data.bytes, data.length, self.queue, nil)

					dispatch_io_write(channel, 0, dispatchData, self.queue) { (done, data, error) in
						if error != 0 {
							sendError(observer, .POSIXError(error))
						}
