protected final def continue()

in util-core/src/main/scala/com/twitter/util/Promise.scala [840:862]


  protected final def continue(wq: WaitQueue[A]): Unit =
    if (wq ne WaitQueue.Empty)
      state match {
        case s: Transforming[A] =>
          if (!cas(s, new Transforming(WaitQueue.merge(wq, s.waitq), s.other)))
            continue(wq)

        case waitq: WaitQueue[A] =>
          if (!cas(waitq, WaitQueue.merge(wq, waitq)))
            continue(wq)

        case v: Try[A] /* Done */ => wq.runInScheduler(v)

        case s: Interruptible[A] =>
          if (!cas(s, new Interruptible(WaitQueue.merge(wq, s.waitq), s.handler, s.saved)))
            continue(wq)

        case p: Promise[A] /* Linked */ => p.continue(wq)

        case s: Interrupted[A] =>
          if (!cas(s, new Interrupted(WaitQueue.merge(wq, s.waitq), s.signal)))
            continue(wq)
      }