Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetItemWhenAvailable()

static T System.Collections.Concurrent.ConcurrentQueue< T >.GetItemWhenAvailable ( ConcurrentQueueSegment< T > segment,
int i )
inlinestaticprivateinherited

Definition at line 255 of file ConcurrentQueue.cs.

256 {
257 int num = (i + 1) & segment._slotsMask;
258 if ((segment._slots[i].SequenceNumber & segment._slotsMask) != num)
259 {
260 SpinWait spinWait = default(SpinWait);
261 while ((Volatile.Read(ref segment._slots[i].SequenceNumber) & segment._slotsMask) != num)
262 {
263 spinWait.SpinOnce();
264 }
265 }
266 return segment._slots[i].Item;
267 }
static bool Read(ref bool location)
Definition Volatile.cs:67

References System.Threading.Volatile.Read().

Referenced by System.Collections.Concurrent.ConcurrentQueue< T >.Enumerate().