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

◆ Signal() [2/2]

bool System.Threading.CountdownEvent.Signal ( int signalCount)
inline

Definition at line 93 of file CountdownEvent.cs.

94 {
95 if (signalCount <= 0)
96 {
97 throw new ArgumentOutOfRangeException("signalCount");
98 }
100 SpinWait spinWait = default(SpinWait);
101 int currentCount;
102 while (true)
103 {
104 currentCount = _currentCount;
105 if (currentCount < signalCount)
106 {
108 }
109 if (Interlocked.CompareExchange(ref _currentCount, currentCount - signalCount, currentCount) == currentCount)
110 {
111 break;
112 }
113 spinWait.SpinOnce(-1);
114 }
115 if (currentCount == signalCount)
116 {
117 _event.Set();
118 return true;
119 }
120 return false;
121 }
static string CountdownEvent_Decrement_BelowZero
Definition SR.cs:18
Definition SR.cs:7
readonly ManualResetEventSlim _event

References System.Threading.CountdownEvent._currentCount, System.Threading.CountdownEvent._event, System.Threading.Interlocked.CompareExchange(), System.SR.CountdownEvent_Decrement_BelowZero, System.Threading.ManualResetEventSlim.Set(), System.Threading.SpinWait.SpinOnce(), and System.Threading.CountdownEvent.ThrowIfDisposed().