log exceptions that end up at the top of a asynchronous viewer packet method call rather than swallowing them
parent
9ecad50419
commit
1be19c7f42
|
@ -641,7 +641,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
if (pprocessor.Async)
|
if (pprocessor.Async)
|
||||||
{
|
{
|
||||||
object obj = new AsyncPacketProcess(this, pprocessor.method, packet);
|
object obj = new AsyncPacketProcess(this, pprocessor.method, packet);
|
||||||
Util.FireAndForget(ProcessSpecificPacketAsync,obj);
|
Util.FireAndForget(ProcessSpecificPacketAsync, obj);
|
||||||
result = true;
|
result = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -669,7 +669,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
public void ProcessSpecificPacketAsync(object state)
|
public void ProcessSpecificPacketAsync(object state)
|
||||||
{
|
{
|
||||||
AsyncPacketProcess packetObject = (AsyncPacketProcess)state;
|
AsyncPacketProcess packetObject = (AsyncPacketProcess)state;
|
||||||
packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack);
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
packetObject.result = packetObject.Method(packetObject.ClientView, packetObject.Pack);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
// Make sure that we see any exception caused by the asynchronous operation.
|
||||||
|
m_log.Error(
|
||||||
|
string.Format("[LLCLIENTVIEW]: Caught exception while processing {0}", packetObject.Pack), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Packet Handling
|
#endregion Packet Handling
|
||||||
|
@ -11695,4 +11705,4 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
OutPacket(dialog, ThrottleOutPacketType.Task);
|
OutPacket(dialog, ThrottleOutPacketType.Task);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue