AtomicNode *Acquire(long payload, long next) { AtomicNode *node = FreeList.Acquire(); Interlocked.Exchange(ref node->Payload, payload); Interlocked.Exchange(ref node->Next, next); return(node); }