Added block for scenario: global exception handler called in loop when exception happens inside global exception handler

Added InnerException to output
ThreadPoolClientBranch
Tedd Hansen 2008-01-18 23:45:16 +00:00
parent 741d136f8c
commit d23222cbc6
2 changed files with 10 additions and 5 deletions

View File

@ -80,6 +80,7 @@ namespace OpenSim
}
}
private static bool _IsHandlingException = false; // Make sure we don't go recursive on ourself
/// <summary>
/// Global exception handler -- all unhandlet exceptions end up here :)
/// </summary>
@ -87,6 +88,9 @@ namespace OpenSim
/// <param name="e"></param>
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: Post error report (disabled for now)
@ -96,7 +100,10 @@ namespace OpenSim
msg += "\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 += "Application is terminating: " + e.IsTerminating.ToString() + "\r\n";
@ -118,6 +125,8 @@ namespace OpenSim
{
// Ignore
}
_IsHandlingException=false;
}
}

View File

@ -1696,19 +1696,15 @@ namespace OpenSim.Region.Environment.Scenes
return LLUUID.Zero;
}
private static readonly object _performParcelPrimCountUpdateMutex = new object();
/// <summary>
///
/// </summary>
public void performParcelPrimCountUpdate()
{
lock (_performParcelPrimCountUpdateMutex)
{
m_LandManager.resetAllLandPrimCounts();
m_eventManager.TriggerParcelPrimCountUpdate();
m_LandManager.finalizeLandPrimCountUpdate();
m_LandManager.landPrimCountTainted = false;
}
}
/// <summary>