 
   override public var isCompleted: Bool {
     var res = false
-    FutureExecution.sync {
+    FutureExecution.sync { [unowned self] in
       res = self.result != nil
     }
     return res

  private var completionCallbacks: [CompletionCallback] = []

  override public var isCompleted: Bool {
    return condition.synchronized { _ in
      self.result != nil
    }
  }

  }

  override public func onComplete(block: CompletionCallback) {
    let res: Try<T>? = condition.synchronized { [unowned self] _ in
      let res = self.result

      if res == nil {
