 }
 
 final private class JAsyncAdapter<Value, Error: ErrorType> : AsyncInterface {
-    
+
     let jobWithProgress: AsyncTypes<Value, Error>.SyncOperationWithProgress
     let queueName      : String?
     let barrier        : Bool
     let currentQueue   : dispatch_queue_t
     let queueAttributes: dispatch_queue_attr_t
-    
+
     init(jobWithProgress: AsyncTypes<Value, Error>.SyncOperationWithProgress,
          queueName      : String?,
          barrier        : Bool,
          currentQueue   : dispatch_queue_t,
          queueAttributes: dispatch_queue_attr_t) {
-        
+
         self.jobWithProgress = jobWithProgress
         self.queueName       = queueName
         self.barrier         = barrier
         self.currentQueue    = currentQueue
         self.queueAttributes = queueAttributes
     }
-    
+
     var operation: BlockOperation<Value, Error>? = nil
-    
+
     func asyncWithResultCallback(
         finishCallback  : AsyncTypes<Value, Error>.DidFinishAsyncCallback,
         stateCallback   : AsyncChangeStateCallback,
         progressCallback: AsyncProgressCallback) {
-        
+
         operation = BlockOperation(
             queueName         : queueName,
             jobWithProgress   : jobWithProgress,

}

public func async<Value, Error: ErrorType>(jobWithProgress: AsyncTypes<Value, Error>.SyncOperationWithProgress) -> AsyncTypes<Value, Error>.Async {
    
    assert(NSThread.isMainThread())
    return async(
        jobWithProgress: jobWithProgress,

        case .UnSubscribe, .Cancel:
            break
        }

        if task == .Cancel {
            operation?.cancel()
            operation = nil
        }
    }

    var isForeignThreadResultCallback: Bool {
        return false
    }
