Added block for scenario: global exception handler called in loop when exception happens inside global exception handler
Added InnerException to outputThreadPoolClientBranch
parent
741d136f8c
commit
d23222cbc6
|
@ -80,6 +80,7 @@ namespace OpenSim
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool _IsHandlingException = false; // Make sure we don't go recursive on ourself
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Global exception handler -- all unhandlet exceptions end up here :)
|
/// Global exception handler -- all unhandlet exceptions end up here :)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -87,6 +88,9 @@ namespace OpenSim
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
|
||||||
{
|
{
|
||||||
|
if (_IsHandlingException)
|
||||||
|
return;
|
||||||
|
_IsHandlingException = true;
|
||||||
// TODO: Add config option to allow users to turn off error reporting
|
// TODO: Add config option to allow users to turn off error reporting
|
||||||
// TODO: Post error report (disabled for now)
|
// TODO: Post error report (disabled for now)
|
||||||
|
|
||||||
|
@ -96,7 +100,10 @@ namespace OpenSim
|
||||||
msg += "\r\n";
|
msg += "\r\n";
|
||||||
|
|
||||||
msg += "Exception: " + e.ExceptionObject.ToString() + "\r\n";
|
msg += "Exception: " + e.ExceptionObject.ToString() + "\r\n";
|
||||||
|
Exception ex = (Exception)e.ExceptionObject;
|
||||||
|
if (ex.InnerException != null)
|
||||||
|
msg += "InnerException: " + ex.InnerException.ToString() + "\r\n";
|
||||||
|
|
||||||
msg += "\r\n";
|
msg += "\r\n";
|
||||||
msg += "Application is terminating: " + e.IsTerminating.ToString() + "\r\n";
|
msg += "Application is terminating: " + e.IsTerminating.ToString() + "\r\n";
|
||||||
|
|
||||||
|
@ -118,6 +125,8 @@ namespace OpenSim
|
||||||
{
|
{
|
||||||
// Ignore
|
// Ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_IsHandlingException=false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1696,19 +1696,15 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
return LLUUID.Zero;
|
return LLUUID.Zero;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static readonly object _performParcelPrimCountUpdateMutex = new object();
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void performParcelPrimCountUpdate()
|
public void performParcelPrimCountUpdate()
|
||||||
{
|
{
|
||||||
lock (_performParcelPrimCountUpdateMutex)
|
|
||||||
{
|
|
||||||
m_LandManager.resetAllLandPrimCounts();
|
m_LandManager.resetAllLandPrimCounts();
|
||||||
m_eventManager.TriggerParcelPrimCountUpdate();
|
m_eventManager.TriggerParcelPrimCountUpdate();
|
||||||
m_LandManager.finalizeLandPrimCountUpdate();
|
m_LandManager.finalizeLandPrimCountUpdate();
|
||||||
m_LandManager.landPrimCountTainted = false;
|
m_LandManager.landPrimCountTainted = false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
Loading…
Reference in New Issue