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

◆ EnqueueSlow()

void System.Collections.Concurrent.SingleProducerSingleConsumerQueue< T >.EnqueueSlow ( T item,
ref Segment segment )
inlineprivate

Definition at line 124 of file SingleProducerSingleConsumerQueue.cs.

125 {
126 if (segment._state._firstCopy != segment._state._first)
127 {
128 segment._state._firstCopy = segment._state._first;
129 Enqueue(item);
130 return;
131 }
132 int num = _tail._array.Length << 1;
133 if (num > 16777216)
134 {
135 num = 16777216;
136 }
137 Segment segment2 = new Segment(num);
138 segment2._array[0] = item;
139 segment2._state._last = 1;
140 segment2._state._lastCopy = 1;
141 try
142 {
143 }
144 finally
145 {
147 _tail = segment2;
148 }
149 }
static void Write(ref bool location, bool value)
Definition Volatile.cs:74

References System.Collections.Concurrent.SingleProducerSingleConsumerQueue< T >._tail, System.Collections.Concurrent.SingleProducerSingleConsumerQueue< T >.Enqueue(), System.item, and System.Threading.Volatile.Write().

Referenced by System.Collections.Concurrent.SingleProducerSingleConsumerQueue< T >.Enqueue().