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

◆ TryAddCount() [2/2]

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

Definition at line 141 of file CountdownEvent.cs.

142 {
143 if (signalCount <= 0)
144 {
145 throw new ArgumentOutOfRangeException("signalCount");
146 }
148 SpinWait spinWait = default(SpinWait);
149 while (true)
150 {
151 int currentCount = _currentCount;
152 if (currentCount <= 0)
153 {
154 return false;
155 }
156 if (currentCount > int.MaxValue - signalCount)
157 {
159 }
160 if (Interlocked.CompareExchange(ref _currentCount, currentCount + signalCount, currentCount) == currentCount)
161 {
162 break;
163 }
164 spinWait.SpinOnce(-1);
165 }
166 return true;
167 }
static string CountdownEvent_Increment_AlreadyMax
Definition SR.cs:16
Definition SR.cs:7

References System.Threading.CountdownEvent._currentCount, System.Threading.Interlocked.CompareExchange(), System.SR.CountdownEvent_Increment_AlreadyMax, System.Threading.SpinWait.SpinOnce(), and System.Threading.CountdownEvent.ThrowIfDisposed().