 
         dispatch_sync(queue) { self.finishedOrCanceled = true }
     }
-    
+
     private func performBackgroundOperationInQueue(
         queue           : dispatch_queue_t,
         barrier         : Bool,

}

public func async<Value, Error: ErrorType>(job job: AsyncTypes<Value, Error>.SyncOperation) -> AsyncTypes<Value, Error>.Async {
    
    return async(job: job, queueName: defaultQueueName)
}

public func async<Value, Error: ErrorType>(job job: AsyncTypes<Value, Error>.SyncOperation, queueName: String) -> AsyncTypes<Value, Error>.Async {
    
    assert(NSThread.isMainThread())
    return async(
        job         : job,

}

func async<Value, Error: ErrorType>(jobWithProgress: AsyncTypes<Value, Error>.SyncOperation, queueName: String, isSerialQueue: Bool) -> AsyncTypes<Value, Error>.Async {

    assert(NSThread.isMainThread())
    let attr = isSerialQueue
        ?DISPATCH_QUEUE_SERIAL
        :DISPATCH_QUEUE_CONCURRENT

    return async(
        job         : jobWithProgress,
        queueName   : queueName,
