     self.next = next
   }
 
-  func releaseOwner() {
-    self.handler?.releaseOwner()
+  override func handle(_ value: Fallible<Success>, from originalExecutor: Executor?) {
+    let handler = self.handler
+    handler?.handle(value, from: originalExecutor)
+    handler?.releaseOwner()
   }
 }
 


    var nextItem = oldHead
    while let currentItem = nextItem as? SubscribedPromiseState<Success> {
      currentItem.handler?.handle(completion, from: originalExecutor)
      currentItem.releaseOwner()
      nextItem = currentItem.next
    }
    _releasePool.drain()

  typealias Value = Fallible<Success>
  typealias Handler = PromiseHandler<Success>
  
  weak private var handler: Handler?
  let next: SubscribedPromiseState<Success>?

  init(handler: Handler, next: SubscribedPromiseState<Success>?) {
