diff options
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r-- | OpenSim/Framework/TaskInventoryDictionary.cs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/OpenSim/Framework/TaskInventoryDictionary.cs b/OpenSim/Framework/TaskInventoryDictionary.cs index 4b9a509..6b65fba 100644 --- a/OpenSim/Framework/TaskInventoryDictionary.cs +++ b/OpenSim/Framework/TaskInventoryDictionary.cs | |||
@@ -30,6 +30,7 @@ using System.Collections.Generic; | |||
30 | using System.Threading; | 30 | using System.Threading; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using System.Xml; | 32 | using System.Xml; |
33 | using System.Diagnostics; | ||
33 | using System.Xml.Schema; | 34 | using System.Xml.Schema; |
34 | using System.Xml.Serialization; | 35 | using System.Xml.Serialization; |
35 | using log4net; | 36 | using log4net; |
@@ -90,6 +91,19 @@ namespace OpenSim.Framework | |||
90 | if (m_itemLock.RecursiveReadCount > 0) | 91 | if (m_itemLock.RecursiveReadCount > 0) |
91 | { | 92 | { |
92 | m_log.Error("[TaskInventoryDictionary] Recursive read lock requested. This should not happen and means something needs to be fixed. For now though, it's safe to continue."); | 93 | m_log.Error("[TaskInventoryDictionary] Recursive read lock requested. This should not happen and means something needs to be fixed. For now though, it's safe to continue."); |
94 | try | ||
95 | { | ||
96 | StackTrace stackTrace = new StackTrace(); // get call stack | ||
97 | StackFrame[] stackFrames = stackTrace.GetFrames(); // get method calls (frames) | ||
98 | |||
99 | // write call stack method names | ||
100 | foreach (StackFrame stackFrame in stackFrames) | ||
101 | { | ||
102 | m_log.Error("[SceneObjectGroup.m_parts] "+(stackFrame.GetMethod().Name); // write method name | ||
103 | } | ||
104 | } | ||
105 | catch | ||
106 | {} | ||
93 | m_itemLock.ExitReadLock(); | 107 | m_itemLock.ExitReadLock(); |
94 | } | 108 | } |
95 | if (m_itemLock.RecursiveWriteCount > 0) | 109 | if (m_itemLock.RecursiveWriteCount > 0) |