diff options
author | Justin Clark-Casey (justincc) | 2010-04-05 19:46:43 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2010-04-05 19:46:43 +0100 |
commit | 1be19c7f42e3f47a89385f8a6fe18b5150e25249 (patch) | |
tree | 0bcf0f5197e4a403c33a552470e2c561e9dc0b20 /OpenSim/Region | |
parent | Partially implement share with group option for object inventory items (diff) | |
download | opensim-SC_OLD-1be19c7f42e3f47a89385f8a6fe18b5150e25249.zip opensim-SC_OLD-1be19c7f42e3f47a89385f8a6fe18b5150e25249.tar.gz opensim-SC_OLD-1be19c7f42e3f47a89385f8a6fe18b5150e25249.tar.bz2 opensim-SC_OLD-1be19c7f42e3f47a89385f8a6fe18b5150e25249.tar.xz |
log exceptions that end up at the top of a asynchronous viewer packet method call rather than swallowing them
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 16 |
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 | } |