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

◆ AdjustCredit()

void System.Net.Http.CreditManager.AdjustCredit ( int amount)
inline

Definition at line 62 of file CreditManager.cs.

63 {
64 lock (SyncObject)
65 {
66 if (System.Net.NetEventSource.Log.IsEnabled())
67 {
68 _owner.Trace($"{_name}. {"amount"}={amount}, current={_current}", "AdjustCredit");
69 }
70 if (_disposed)
71 {
72 return;
73 }
74 checked
75 {
76 _current += amount;
77 }
78 while (_current > 0 && _waitersTail != null)
79 {
80 CreditWaiter next = _waitersTail.Next;
81 int num = Math.Min(next.Amount, _current);
82 if (next.Next == next)
83 {
84 _waitersTail = null;
85 }
86 else
87 {
88 _waitersTail.Next = next.Next;
89 }
90 next.Next = null;
91 if (next.TrySetResult(num))
92 {
93 _current -= num;
94 }
95 next.Dispose();
96 }
97 }
98 }
readonly IHttpTrace _owner
static readonly System.Net.NetEventSource Log
void Trace(string message, [CallerMemberName] string memberName=null)

References System.Net.Http.CreditManager._current, System.Net.Http.CreditManager._disposed, System.Net.Http.CreditManager._owner, System.Net.Http.CreditManager._waitersTail, System.Net.Http.CreditWaiter.Amount, System.Net.Http.CreditWaiter.Dispose(), System.Net.NetEventSource.Log, System.Math.Min(), System.Net.Http.CreditWaiter.Next, System.Net.Http.CreditManager.SyncObject, System.Net.Http.IHttpTrace.Trace(), and System.Net.Http.CreditWaiter.TrySetResult().

Referenced by System.Net.Http.Http2Connection.ProcessWindowUpdateFrame(), and System.Net.Http.Http2Connection.SendStreamDataAsync().