in src/Net/TcpTransport.cs [410:447]
public bool TrackOne()
{
this.iops++;
var now = DateTime.UtcNow;
bool changed = false;
if (now.Ticks - this.windowStart.Ticks >= WindowTicks)
{
int i = thresholds.Length;
while (i >= 1 && this.iops < thresholds[i - 1])
{
i--;
}
byte level = (byte)i;
if (this.level1 > this.level0)
{
if (level > this.level0)
{
this.level0 = Math.Min(level, this.level1);
changed = true;
}
}
else if (this.level1 < this.level0)
{
if (level < this.level0)
{
this.level0 = Math.Max(level0, this.level1);
changed = true;
}
}
this.level1 = level;
this.iops = 0;
this.windowStart = now;
}
return changed;
}