aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs16
1 files changed, 13 insertions, 3 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 7ccdd58..516c23b 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -641,7 +641,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
641 if (pprocessor.Async) 641 if (pprocessor.Async)
642 { 642 {
643 object obj = new AsyncPacketProcess(this, pprocessor.method, packet); 643 object obj = new AsyncPacketProcess(this, pprocessor.method, packet);
644 Util.FireAndForget(ProcessSpecificPacketAsync,obj); 644 Util.FireAndForget(ProcessSpecificPacketAsync, obj);
645 result = true; 645 result = true;
646 } 646 }
647 else 647 else
@@ -669,7 +669,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
669 public void ProcessSpecificPacketAsync(object state) 669 public void ProcessSpecificPacketAsync(object state)
670 { 670 {
671 AsyncPacketProcess packetObject = (AsyncPacketProcess)state; 671 AsyncPacketProcess packetObject = (AsyncPacketProcess)state;
672 packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack); 672
673 try
674 {
675 packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack);
676 }
677 catch (Exception e)
678 {
679 // Make sure that we see any exception caused by the asynchronous operation.
680 m_log.Error(
681 string.Format("[LLCLIENTVIEW]: Caught exception while processing {0}", packetObject.Pack), e);
682 }
673 } 683 }
674 684
675 #endregion Packet Handling 685 #endregion Packet Handling
@@ -11695,4 +11705,4 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11695 OutPacket(dialog, ThrottleOutPacketType.Task); 11705 OutPacket(dialog, ThrottleOutPacketType.Task);
11696 } 11706 }
11697 } 11707 }
11698} \ No newline at end of file 11708}