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

◆ TryDequeueIf()

bool System.Threading.Tasks.SingleProducerSingleConsumerQueue< T >.TryDequeueIf ( Predicate< T > predicate,
[MaybeNullWhen(false)] out T result )
inline

Definition at line 239 of file SingleProducerSingleConsumerQueue.cs.

240 {
241 Segment segment = _head;
242 T[] array = segment._array;
243 int first = segment._state._first;
244 if (first != segment._state._lastCopy)
245 {
246 result = array[first];
247 if (predicate == null || predicate(result))
248 {
249 array[first] = default(T);
250 segment._state._first = (first + 1) & (array.Length - 1);
251 return true;
252 }
253 result = default(T);
254 return false;
255 }
256 return TryDequeueIfSlow(predicate, ref segment, ref array, out result);
257 }
bool TryDequeueIfSlow(Predicate< T > predicate, ref Segment segment, ref T[] array, [MaybeNullWhen(false)] out T result)

References System.Threading.Tasks.SingleProducerSingleConsumerQueue< T >._head, System.array, and System.Threading.Tasks.SingleProducerSingleConsumerQueue< T >.TryDequeueIfSlow().

Referenced by System.Threading.Tasks.SingleProducerSingleConsumerQueue< T >.TryDequeueIfSlow().