diff options
author | Melanie Thielker | 2010-07-25 08:11:39 +0200 |
---|---|---|
committer | Melanie Thielker | 2010-07-25 08:11:39 +0200 |
commit | 516ec4acd01d70276329d251155775cedf7b8941 (patch) | |
tree | 4f9c9fc2afa827e5477b074f95472d531b3d1b58 /OpenSim/Region/Framework | |
parent | Fix a little infinite recursion i added just for sh.ts and giggles. NOT. (diff) | |
download | opensim-SC-516ec4acd01d70276329d251155775cedf7b8941.zip opensim-SC-516ec4acd01d70276329d251155775cedf7b8941.tar.gz opensim-SC-516ec4acd01d70276329d251155775cedf7b8941.tar.bz2 opensim-SC-516ec4acd01d70276329d251155775cedf7b8941.tar.xz |
Eat a lockign exception that kills scripts. May bear more investigation
in the long run.
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 13 |
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)) |