aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie Thielker2010-07-25 08:11:39 +0200
committerMelanie Thielker2010-07-25 08:11:39 +0200
commit516ec4acd01d70276329d251155775cedf7b8941 (patch)
tree4f9c9fc2afa827e5477b074f95472d531b3d1b58
parentFix a little infinite recursion i added just for sh.ts and giggles. NOT. (diff)
downloadopensim-SC_OLD-516ec4acd01d70276329d251155775cedf7b8941.zip
opensim-SC_OLD-516ec4acd01d70276329d251155775cedf7b8941.tar.gz
opensim-SC_OLD-516ec4acd01d70276329d251155775cedf7b8941.tar.bz2
opensim-SC_OLD-516ec4acd01d70276329d251155775cedf7b8941.tar.xz
Eat a lockign exception that kills scripts. May bear more investigation
in the long run.
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs13
1 files changed, 11 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 24d260e..dbf493c 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -136,12 +136,21 @@ namespace OpenSim.Region.Framework.Scenes
136 if (m_partsLock.RecursiveReadCount > 0) 136 if (m_partsLock.RecursiveReadCount > 0)
137 { 137 {
138 m_log.Error("[SceneObjectGroup.m_parts] Recursive read lock requested. This should not happen and means something needs to be fixed. For now though, it's safe to continue."); 138 m_log.Error("[SceneObjectGroup.m_parts] Recursive read lock requested. This should not happen and means something needs to be fixed. For now though, it's safe to continue.");
139 m_partsLock.ExitReadLock(); 139 try
140 {
141 m_partsLock.ExitReadLock();
142 }
143 catch { } // Ignore errors, to allow resync
140 } 144 }
141 if (m_partsLock.RecursiveWriteCount > 0) 145 if (m_partsLock.RecursiveWriteCount > 0)
142 { 146 {
143 m_log.Error("[SceneObjectGroup.m_parts] Recursive read lock requested (write lock exists on this thread). This should not happen and means something needs to be fixed."); 147 m_log.Error("[SceneObjectGroup.m_parts] Recursive read lock requested (write lock exists on this thread). This should not happen and means something needs to be fixed.");
144 m_partsLock.ExitWriteLock(); 148 try
149 {
150 m_partsLock.ExitWriteLock();
151 }
152 catch { }
153
145 } 154 }
146 155
147 while (!m_partsLock.TryEnterReadLock(60000)) 156 while (!m_partsLock.TryEnterReadLock(60000))