       // this Deferred has become resolved; clean up
       waiter.deinitialize(count: 1)
       waiter.deallocate()
-      _ = deferredState.load(.acquire)
+      _ = CAtomicsLoad(deferredState, .acquire)
     }
 
     // this Deferred is resolved

  {
    self.queue = queue
    resolved = result
    deferredState = AtomicInt(.resolved)
  }

  /// Initialize with a task to be computed on the specified queue

    // "acquire" ordering ensures visibility of changes to `waitQueue` from another thread.
    // Any atomic load of `waiters` that precedes a possible use of `resolved`
    // *must* use memory order .acquire.
    let state = CAtomicsExchange(deferredState, .resolved, .acqrel)
    // precondition(state.isResolved == false)
    let waitQueue = state.waiters?.assumingMemoryBound(to: Waiter<Value>.self)
    notifyWaiters(queue, waitQueue, result)
