private void CheckExitTimeQueue()
{
if(nextCheckTime > SystemTime.UtcNow.Ticks)
return;
while (expirationTimestampsQueue.Count > 0 && expirationTimestampsQueue.Peek() <= SystemTime.UtcNow.Ticks)
{
expirationTimestampsQueue.Dequeue();
remainingTokens++;
}
//try to determine next check time
if (expirationTimestampsQueue.Count > 0)
{
var item = expirationTimestampsQueue.Peek();
nextCheckTime = item;
}
else
nextCheckTime = timeUnitTicks;
}