diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs b/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs index 3071110..94f7214 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLPacketQueue.cs | |||
@@ -389,12 +389,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
389 | 389 | ||
390 | if ((q.Count == 0) && (throttle.UnderLimit())) | 390 | if ((q.Count == 0) && (throttle.UnderLimit())) |
391 | { | 391 | { |
392 | Monitor.Enter(this); | 392 | try |
393 | throttle.Add(item.Packet.ToBytes().Length); | 393 | { |
394 | TotalThrottle.Add(item.Packet.ToBytes().Length); | 394 | Monitor.Enter(this); |
395 | SendQueue.Enqueue(item); | 395 | throttle.Add(item.Packet.ToBytes().Length); |
396 | Monitor.Pulse(this); | 396 | TotalThrottle.Add(item.Packet.ToBytes().Length); |
397 | Monitor.Exit(this); | 397 | SendQueue.Enqueue(item); |
398 | } | ||
399 | catch (Exception e) | ||
400 | { | ||
401 | // Probably a serialization exception | ||
402 | m_log.WarnFormat("ThrottleCheck: {0}", e.ToString()); | ||
403 | } | ||
404 | finally | ||
405 | { | ||
406 | Monitor.Pulse(this); | ||
407 | Monitor.Exit(this); | ||
408 | } | ||
398 | } | 409 | } |
399 | else | 410 | else |
400 | { | 411 | { |