     
 }
 
+private let _mainOperationQueue = NSOperationQueue.mainQueue()
+private let _dispatch_main_queue = dispatch_get_main_queue()
+private let _dispatch_serial_queue = dispatch_queue_create(nil, DISPATCH_QUEUE_SERIAL)
+
 public final class TaskAwaiter<V> {
     
     public let task: Task<V>

            catch let error {
                if error.userCancelled {
                    if let didCancelClosure = self.didCancelClosure {
                        callbackQueue.addOperationWithBlock {
                            didCancelClosure()
                        }
                    }
                }
                else {
                    if let didFinishWithErrorClosure = self.didFinishWithErrorClosure {
                        callbackQueue.addOperationWithBlock {
                            didFinishWithErrorClosure(error)
                        }
                    }

                try await(task)
                
                if let didFinishWithValueClosure = self.didFinishWithValueClosure {
                    dispatchToCallbackQueue {
                        didFinishWithValueClosure(task.value)
                    }
                }
