diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 9788f40..460f94e 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -633,6 +633,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
633 | // of the client thread regardless of where Close() is called. | 633 | // of the client thread regardless of where Close() is called. |
634 | KillEndDone(); | 634 | KillEndDone(); |
635 | } | 635 | } |
636 | |||
637 | Terminate(); | ||
636 | } | 638 | } |
637 | 639 | ||
638 | /// <summary> | 640 | /// <summary> |
@@ -737,16 +739,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
737 | 739 | ||
738 | } | 740 | } |
739 | 741 | ||
740 | public void Terminate() | 742 | private void Terminate() |
741 | { | 743 | { |
744 | IsActive = false; | ||
745 | |||
746 | m_clientPingTimer.Close(); | ||
747 | m_avatarTerseUpdateTimer.Close(); | ||
748 | m_primTerseUpdateTimer.Close(); | ||
749 | m_primFullUpdateTimer.Close(); | ||
750 | m_textureRequestTimer.Close(); | ||
751 | |||
742 | m_PacketHandler.OnPacketStats -= PopulateStats; | 752 | m_PacketHandler.OnPacketStats -= PopulateStats; |
743 | m_PacketHandler.Stop(); | 753 | m_PacketHandler.Dispose(); |
744 | 754 | ||
745 | // wait for thread stoped | 755 | // wait for thread stoped |
746 | m_clientThread.Join(); | 756 | // m_clientThread.Join(); |
747 | 757 | ||
748 | // delete circuit code | 758 | // delete circuit code |
749 | m_networkServer.CloseClient(this); | 759 | //m_networkServer.CloseClient(this); |
750 | } | 760 | } |
751 | 761 | ||
752 | #endregion | 762 | #endregion |
@@ -876,6 +886,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
876 | while (IsActive) | 886 | while (IsActive) |
877 | { | 887 | { |
878 | LLQueItem nextPacket = m_PacketHandler.PacketQueue.Dequeue(); | 888 | LLQueItem nextPacket = m_PacketHandler.PacketQueue.Dequeue(); |
889 | |||
890 | if (nextPacket == null) { | ||
891 | m_log.DebugFormat("[CLIENT]: PacketQueue return null LLQueItem"); | ||
892 | continue; | ||
893 | } | ||
879 | 894 | ||
880 | if (nextPacket.Incoming) | 895 | if (nextPacket.Incoming) |
881 | { | 896 | { |