     source = nil
     determined = nil
     waiters = AtomicOptionalMutableRawPointer(nil)
-    stateid = AtomicInt8(0)
+    deferredState = AtomicInt(.waiting)
   }
 
   /// Initialize with a pre-determined `Outcome`


  func beginExecution()
  {
    var current = stateid.load(.relaxed)
    repeat {
      if current != 0
      { // execution state has already been marked as begun
        return
      }
    } while !stateid.loadCAS(&current, 1, .weak, .relaxed, .relaxed)
  }

  /// Set the `Outcome` of this `Deferred` and dispatch all notifications for execution.

    self.source = source
    determined = nil
    waiters = AtomicOptionalMutableRawPointer(nil)
    deferredState = AtomicInt(beginExecution ? (source.deferredState.load(.relaxed) & .executing) : 0)
  }

  fileprivate init(queue: DispatchQueue)
