From 4ffc284a36b9111fd1fe3be23f8f7cb0a58a025c Mon Sep 17 00:00:00 2001 From: dr scofield (aka dirk husemann) Date: Tue, 4 Aug 2009 17:24:32 +0200 Subject: trying to fix rare timer related exception. --- .../Region/ClientStack/LindenUDP/LLClientView.cs | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index e532939..9142b36 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -592,11 +592,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP Thread.Sleep(2000); // Shut down timers - m_clientPingTimer.Stop(); - m_avatarTerseUpdateTimer.Stop(); - m_primTerseUpdateTimer.Stop(); - m_primFullUpdateTimer.Stop(); - m_textureRequestTimer.Stop(); + if (m_clientPingTimer.Enabled) m_clientPingTimer.Stop(); + if (m_avatarTerseUpdateTimer.Enabled) m_avatarTerseUpdateTimer.Stop(); + if (m_primTerseUpdateTimer.Enabled) m_primTerseUpdateTimer.Stop(); + if (m_primFullUpdateTimer.Enabled) m_primFullUpdateTimer.Stop(); + if (m_textureRequestTimer.Enabled) m_textureRequestTimer.Stop(); // This is just to give the client a reasonable chance of // flushing out all it's packets. There should probably @@ -676,11 +676,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP public void Stop() { // Shut down timers - m_clientPingTimer.Stop(); - m_avatarTerseUpdateTimer.Stop(); - m_primTerseUpdateTimer.Stop(); - m_primFullUpdateTimer.Stop(); - m_textureRequestTimer.Stop(); + if (m_clientPingTimer.Enabled) m_clientPingTimer.Stop(); + if (m_avatarTerseUpdateTimer.Enabled) m_avatarTerseUpdateTimer.Stop(); + if (m_primTerseUpdateTimer.Enabled) m_primTerseUpdateTimer.Stop(); + if (m_primFullUpdateTimer.Enabled) m_primFullUpdateTimer.Stop(); + if (m_textureRequestTimer.Enabled) m_textureRequestTimer.Stop(); } public void Restart() @@ -3111,7 +3111,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP { lock (m_primFullUpdates) { - if (m_primFullUpdates.Count == 0) + if (m_primFullUpdates.Count == 0 && m_primFullUpdateTimer.Enabled) { m_primFullUpdateTimer.Stop(); @@ -3159,7 +3159,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP outPacket.Header.Zerocoded = true; OutPacket(outPacket, ThrottleOutPacketType.Task | ThrottleOutPacketType.LowPriority); - if (m_primFullUpdates.Count == 0) + if (m_primFullUpdates.Count == 0 && m_primFullUpdateTimer.Enabled) m_primFullUpdateTimer.Stop(); } } -- cgit v1.1