diff options
author | Diva Canto | 2010-12-13 09:42:27 -0800 |
---|---|---|
committer | Diva Canto | 2010-12-13 09:42:27 -0800 |
commit | 870bbcfc6c264c515ac660837d16ccad4e59ac64 (patch) | |
tree | 0e06406762219ae46a28a19fa3fc84f7987a29aa | |
parent | Fixed wrong configuration variable names. (diff) | |
download | opensim-SC_OLD-870bbcfc6c264c515ac660837d16ccad4e59ac64.zip opensim-SC_OLD-870bbcfc6c264c515ac660837d16ccad4e59ac64.tar.gz opensim-SC_OLD-870bbcfc6c264c515ac660837d16ccad4e59ac64.tar.bz2 opensim-SC_OLD-870bbcfc6c264c515ac660837d16ccad4e59ac64.tar.xz |
This may have been the biggest, baddest bug in OpenSim ever... confusion between bytes per second and bytes per millisecond.
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/TokenBucket.cs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/TokenBucket.cs b/OpenSim/Region/ClientStack/LindenUDP/TokenBucket.cs index bdbd284..4d9ca09 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/TokenBucket.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/TokenBucket.cs | |||
@@ -119,6 +119,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
119 | 119 | ||
120 | #endregion Properties | 120 | #endregion Properties |
121 | 121 | ||
122 | // To help debugging | ||
123 | private static int idCount = 0; | ||
124 | private int id; | ||
125 | |||
122 | /// <summary> | 126 | /// <summary> |
123 | /// Default constructor | 127 | /// Default constructor |
124 | /// </summary> | 128 | /// </summary> |
@@ -134,6 +138,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
134 | MaxBurst = maxBurst; | 138 | MaxBurst = maxBurst; |
135 | DripRate = dripRate; | 139 | DripRate = dripRate; |
136 | lastDrip = Environment.TickCount & Int32.MaxValue; | 140 | lastDrip = Environment.TickCount & Int32.MaxValue; |
141 | id = idCount++; | ||
137 | } | 142 | } |
138 | 143 | ||
139 | /// <summary> | 144 | /// <summary> |
@@ -191,6 +196,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
191 | if (tokensPerMS == 0) | 196 | if (tokensPerMS == 0) |
192 | { | 197 | { |
193 | content = maxBurst; | 198 | content = maxBurst; |
199 | //Console.WriteLine("XXX (" + id + ") content = maxBurst and maxBurst = " + maxBurst); | ||
194 | return true; | 200 | return true; |
195 | } | 201 | } |
196 | else | 202 | else |
@@ -205,11 +211,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
205 | return false; | 211 | return false; |
206 | } | 212 | } |
207 | 213 | ||
208 | int dripAmount = deltaMS * tokensPerMS; | 214 | // dripAmpount here is in bytes per millisecond |
209 | 215 | int dripAmount = deltaMS * tokensPerMS; | |
216 | // but content is in bytes per second, so let's multiply by 1000 | ||
217 | dripAmount = dripAmount * 1000; | ||
210 | content = Math.Min(content + dripAmount, maxBurst); | 218 | content = Math.Min(content + dripAmount, maxBurst); |
211 | lastDrip = now; | 219 | lastDrip = now; |
212 | 220 | ||
221 | //Console.WriteLine("XXX (" + id + ") deltaMS=" + deltaMS + "; tokensPerMS=" + tokensPerMS + "; content=" + content + "; dripAmount=" + dripAmount); | ||
213 | return true; | 222 | return true; |
214 | } | 223 | } |
215 | } | 224 | } |