diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 7ff82e6..ccd5d99 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -1101,7 +1101,15 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1101 | // due to a race condition | 1101 | // due to a race condition |
1102 | // | 1102 | // |
1103 | lock (m_CompileQueue) | 1103 | lock (m_CompileQueue) |
1104 | { | ||
1104 | m_CurrentCompile = null; | 1105 | m_CurrentCompile = null; |
1106 | |||
1107 | // This is to avoid a situation where the m_CompileQueue while loop above could complete but | ||
1108 | // OnRezScript() place a new script on the queue and check m_CurrentCompile = null before we hit | ||
1109 | // this section. | ||
1110 | if (m_CompileQueue.Count > 0) | ||
1111 | m_CurrentCompile = m_ThreadPool.QueueWorkItem(DoOnRezScriptQueue, null); | ||
1112 | } | ||
1105 | } | 1113 | } |
1106 | 1114 | ||
1107 | return null; | 1115 | return null; |