diff options
-rw-r--r-- | OpenSim/Region/Application/Application.cs | 11 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 4 |
2 files changed, 10 insertions, 5 deletions
diff --git a/OpenSim/Region/Application/Application.cs b/OpenSim/Region/Application/Application.cs index d253775..bf44274 100644 --- a/OpenSim/Region/Application/Application.cs +++ b/OpenSim/Region/Application/Application.cs | |||
@@ -80,6 +80,7 @@ namespace OpenSim | |||
80 | } | 80 | } |
81 | } | 81 | } |
82 | 82 | ||
83 | private static bool _IsHandlingException = false; // Make sure we don't go recursive on ourself | ||
83 | /// <summary> | 84 | /// <summary> |
84 | /// Global exception handler -- all unhandlet exceptions end up here :) | 85 | /// Global exception handler -- all unhandlet exceptions end up here :) |
85 | /// </summary> | 86 | /// </summary> |
@@ -87,6 +88,9 @@ namespace OpenSim | |||
87 | /// <param name="e"></param> | 88 | /// <param name="e"></param> |
88 | private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) | 89 | private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) |
89 | { | 90 | { |
91 | if (_IsHandlingException) | ||
92 | return; | ||
93 | _IsHandlingException = true; | ||
90 | // TODO: Add config option to allow users to turn off error reporting | 94 | // TODO: Add config option to allow users to turn off error reporting |
91 | // TODO: Post error report (disabled for now) | 95 | // TODO: Post error report (disabled for now) |
92 | 96 | ||
@@ -96,7 +100,10 @@ namespace OpenSim | |||
96 | msg += "\r\n"; | 100 | msg += "\r\n"; |
97 | 101 | ||
98 | msg += "Exception: " + e.ExceptionObject.ToString() + "\r\n"; | 102 | msg += "Exception: " + e.ExceptionObject.ToString() + "\r\n"; |
99 | 103 | Exception ex = (Exception)e.ExceptionObject; | |
104 | if (ex.InnerException != null) | ||
105 | msg += "InnerException: " + ex.InnerException.ToString() + "\r\n"; | ||
106 | |||
100 | msg += "\r\n"; | 107 | msg += "\r\n"; |
101 | msg += "Application is terminating: " + e.IsTerminating.ToString() + "\r\n"; | 108 | msg += "Application is terminating: " + e.IsTerminating.ToString() + "\r\n"; |
102 | 109 | ||
@@ -118,6 +125,8 @@ namespace OpenSim | |||
118 | { | 125 | { |
119 | // Ignore | 126 | // Ignore |
120 | } | 127 | } |
128 | |||
129 | _IsHandlingException=false; | ||
121 | } | 130 | } |
122 | 131 | ||
123 | } | 132 | } |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 6a10969..c6f9aff 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -1696,19 +1696,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
1696 | return LLUUID.Zero; | 1696 | return LLUUID.Zero; |
1697 | } | 1697 | } |
1698 | 1698 | ||
1699 | private static readonly object _performParcelPrimCountUpdateMutex = new object(); | ||
1700 | /// <summary> | 1699 | /// <summary> |
1701 | /// | 1700 | /// |
1702 | /// </summary> | 1701 | /// </summary> |
1703 | public void performParcelPrimCountUpdate() | 1702 | public void performParcelPrimCountUpdate() |
1704 | { | 1703 | { |
1705 | lock (_performParcelPrimCountUpdateMutex) | ||
1706 | { | ||
1707 | m_LandManager.resetAllLandPrimCounts(); | 1704 | m_LandManager.resetAllLandPrimCounts(); |
1708 | m_eventManager.TriggerParcelPrimCountUpdate(); | 1705 | m_eventManager.TriggerParcelPrimCountUpdate(); |
1709 | m_LandManager.finalizeLandPrimCountUpdate(); | 1706 | m_LandManager.finalizeLandPrimCountUpdate(); |
1710 | m_LandManager.landPrimCountTainted = false; | 1707 | m_LandManager.landPrimCountTainted = false; |
1711 | } | ||
1712 | } | 1708 | } |
1713 | 1709 | ||
1714 | /// <summary> | 1710 | /// <summary> |