 							task.standardOutput = stdoutPipe.writeHandle
 							task.standardError = stderrPipe.writeHandle
 
+							dispatch_group_enter(group)
 							task.terminationHandler = { task in
 								let terminationStatus = task.terminationStatus
 								if terminationStatus == EXIT_SUCCESS {

				}

				close(self.writeFD)
			}

			producer.startWithSignal { signal, producerDisposable in

public func launchTask(taskDescription: TaskDescription) -> SignalProducer<TaskEvent<NSData>, ReactiveTaskError> {
	return SignalProducer { observer, disposable in
		let queue = dispatch_queue_create(taskDescription.description, DISPATCH_QUEUE_SERIAL)
		let group = TaskDescription.group

		let task = NSTask()
		task.launchPath = taskDescription.launchPath
