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

◆ FreezeBag()

void System.Collections.Concurrent.ConcurrentBag< T >.FreezeBag ( ref bool lockTaken)
inlineprivate

Definition at line 674 of file ConcurrentBag.cs.

675 {
677 WorkStealingQueue workStealingQueues = _workStealingQueues;
678 for (WorkStealingQueue workStealingQueue = workStealingQueues; workStealingQueue != null; workStealingQueue = workStealingQueue._nextQueue)
679 {
680 Monitor.Enter(workStealingQueue, ref workStealingQueue._frozen);
681 }
684 {
685 if (workStealingQueue2._currentOp != 0)
686 {
687 SpinWait spinWait = default(SpinWait);
688 do
689 {
690 spinWait.SpinOnce();
691 }
692 while (workStealingQueue2._currentOp != 0);
693 }
694 }
695 }
volatile WorkStealingQueue _workStealingQueues
static void Enter(object obj)

References System.Collections.Concurrent.ConcurrentBag< T >._workStealingQueues, System.Threading.Monitor.Enter(), System.Collections.Concurrent.ConcurrentBag< T >.GlobalQueuesLock, and System.Threading.Interlocked.MemoryBarrier().

Referenced by System.Collections.Concurrent.ConcurrentBag< T >.Clear(), System.Collections.Concurrent.ConcurrentBag< T >.CopyTo(), and System.Collections.Concurrent.ConcurrentBag< T >.ToArray().