diff --git a/OpenSim/Region/ClientStack/LindenUDP/TokenBucket.cs b/OpenSim/Region/ClientStack/LindenUDP/TokenBucket.cs
index bdbd2848c6..4d9ca0959b 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/TokenBucket.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/TokenBucket.cs
@@ -119,6 +119,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
#endregion Properties
+ // To help debugging
+ private static int idCount = 0;
+ private int id;
+
///
/// Default constructor
///
@@ -134,6 +138,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
MaxBurst = maxBurst;
DripRate = dripRate;
lastDrip = Environment.TickCount & Int32.MaxValue;
+ id = idCount++;
}
///
@@ -191,6 +196,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (tokensPerMS == 0)
{
content = maxBurst;
+ //Console.WriteLine("XXX (" + id + ") content = maxBurst and maxBurst = " + maxBurst);
return true;
}
else
@@ -205,11 +211,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
return false;
}
- int dripAmount = deltaMS * tokensPerMS;
-
+ // dripAmpount here is in bytes per millisecond
+ int dripAmount = deltaMS * tokensPerMS;
+ // but content is in bytes per second, so let's multiply by 1000
+ dripAmount = dripAmount * 1000;
content = Math.Min(content + dripAmount, maxBurst);
lastDrip = now;
+ //Console.WriteLine("XXX (" + id + ") deltaMS=" + deltaMS + "; tokensPerMS=" + tokensPerMS + "; content=" + content + "; dripAmount=" + dripAmount);
return true;
}
}