aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2007-11-22 23:14:38 +0000
committerTeravus Ovares2007-11-22 23:14:38 +0000
commit01cd8014da2d369ed72cffb9b6e7fc7c9392ab3c (patch)
tree6dd8d869f07b8468e8a8fb417c2a80bccb4b078b
parent* Quelled a Log format exception in the logging routines. (diff)
downloadopensim-SC_OLD-01cd8014da2d369ed72cffb9b6e7fc7c9392ab3c.zip
opensim-SC_OLD-01cd8014da2d369ed72cffb9b6e7fc7c9392ab3c.tar.gz
opensim-SC_OLD-01cd8014da2d369ed72cffb9b6e7fc7c9392ab3c.tar.bz2
opensim-SC_OLD-01cd8014da2d369ed72cffb9b6e7fc7c9392ab3c.tar.xz
* Added another code path to skip the packet throttle queues when there's no need to queue the packet up.
-rw-r--r--OpenSim/Region/ClientStack/ClientView.PacketQueue.cs80
1 files changed, 73 insertions, 7 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs b/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs
index 3ce3d8c..bd22970 100644
--- a/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs
+++ b/OpenSim/Region/ClientStack/ClientView.PacketQueue.cs
@@ -225,28 +225,94 @@ namespace OpenSim.Region.ClientStack
225 item.Packet = NewPack; 225 item.Packet = NewPack;
226 item.Incoming = false; 226 item.Incoming = false;
227 item.throttleType = throttlePacketType; // Packet throttle type 227 item.throttleType = throttlePacketType; // Packet throttle type
228
229 // The idea.. is if the packet throttle queues are empty and the client is under throttle for the type.
230 // Queue it up directly.
228 switch (throttlePacketType) 231 switch (throttlePacketType)
229 { 232 {
230 case ThrottleOutPacketType.Resend: 233 case ThrottleOutPacketType.Resend:
231 ResendOutgoingPacketQueue.Enqueue(item); 234 if (ResendthrottleSentPeriod <= ResendthrottleOutbound && ResendOutgoingPacketQueue.Count == 0)
235 {
236 throttleSentPeriod += item.Packet.ToBytes().Length;
237 ResendthrottleSentPeriod += item.Packet.ToBytes().Length;
238 PacketQueue.Enqueue(item);
239 }
240 else
241 {
242 ResendOutgoingPacketQueue.Enqueue(item);
243 }
232 break; 244 break;
233 case ThrottleOutPacketType.Texture: 245 case ThrottleOutPacketType.Texture:
234 TextureOutgoingPacketQueue.Enqueue(item); 246 if (TexturethrottleSentPeriod <= TexturethrottleOutbound && TextureOutgoingPacketQueue.Count == 0)
247 {
248 throttleSentPeriod += item.Packet.ToBytes().Length;
249 TexturethrottleSentPeriod += item.Packet.ToBytes().Length;
250 PacketQueue.Enqueue(item);
251 }
252 else
253 {
254 TextureOutgoingPacketQueue.Enqueue(item);
255 }
235 break; 256 break;
236 case ThrottleOutPacketType.Task: 257 case ThrottleOutPacketType.Task:
237 TaskOutgoingPacketQueue.Enqueue(item); 258 if (TaskthrottleSentPeriod <= TaskthrottleOutbound && TaskOutgoingPacketQueue.Count == 0)
259 {
260 throttleSentPeriod += item.Packet.ToBytes().Length;
261 TaskthrottleSentPeriod += item.Packet.ToBytes().Length;
262 PacketQueue.Enqueue(item);
263 }
264 else
265 {
266 TaskOutgoingPacketQueue.Enqueue(item);
267 }
238 break; 268 break;
239 case ThrottleOutPacketType.Land: 269 case ThrottleOutPacketType.Land:
240 LandOutgoingPacketQueue.Enqueue(item); 270 if (LandthrottleSentPeriod <= LandthrottleOutbound && LandOutgoingPacketQueue.Count == 0)
271 {
272 throttleSentPeriod += item.Packet.ToBytes().Length;
273 LandthrottleSentPeriod += item.Packet.ToBytes().Length;
274 PacketQueue.Enqueue(item);
275 }
276 else
277 {
278 LandOutgoingPacketQueue.Enqueue(item);
279 }
241 break; 280 break;
242 case ThrottleOutPacketType.Asset: 281 case ThrottleOutPacketType.Asset:
243 AssetOutgoingPacketQueue.Enqueue(item); 282 if (AssetthrottleSentPeriod <= AssetthrottleOutbound && AssetOutgoingPacketQueue.Count == 0)
283 {
284 throttleSentPeriod += item.Packet.ToBytes().Length;
285 AssetthrottleSentPeriod += item.Packet.ToBytes().Length;
286 PacketQueue.Enqueue(item);
287 }
288 else
289 {
290 AssetOutgoingPacketQueue.Enqueue(item);
291 }
244 break; 292 break;
245 case ThrottleOutPacketType.Cloud: 293 case ThrottleOutPacketType.Cloud:
246 CloudOutgoingPacketQueue.Enqueue(item); 294 if (CloudthrottleSentPeriod <= CloudthrottleOutbound && CloudOutgoingPacketQueue.Count == 0)
295 {
296 throttleSentPeriod += item.Packet.ToBytes().Length;
297 CloudthrottleSentPeriod += item.Packet.ToBytes().Length;
298 PacketQueue.Enqueue(item);
299 }
300 else
301 {
302 CloudOutgoingPacketQueue.Enqueue(item);
303 }
247 break; 304 break;
248 case ThrottleOutPacketType.Wind: 305 case ThrottleOutPacketType.Wind:
249 WindOutgoingPacketQueue.Enqueue(item); 306 if (WindthrottleSentPeriod <= WindthrottleOutbound && WindOutgoingPacketQueue.Count == 0)
307 {
308 throttleSentPeriod += item.Packet.ToBytes().Length;
309 WindthrottleSentPeriod += item.Packet.ToBytes().Length;
310 PacketQueue.Enqueue(item);
311 }
312 else
313 {
314 WindOutgoingPacketQueue.Enqueue(item);
315 }
250 break; 316 break;
251 317
252 default: 318 default: