Remove minor race condition where two threads could race on fields such as m_ScriptFailCount as set in XEngine.DoOnRezScriptQueue()
parent
79e37e5ecc
commit
55e064baf7
|
@ -1076,6 +1076,12 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||||
m_log.InfoFormat(
|
m_log.InfoFormat(
|
||||||
"[XEngine]: Completed starting {0} scripts on {1}", scriptsStarted, m_Scene.Name);
|
"[XEngine]: Completed starting {0} scripts on {1}", scriptsStarted, m_Scene.Name);
|
||||||
|
|
||||||
|
m_Scene.EventManager.TriggerEmptyScriptCompileQueue(m_ScriptFailCount,
|
||||||
|
m_ScriptErrorMessage);
|
||||||
|
|
||||||
|
m_ScriptFailCount = 0;
|
||||||
|
m_InitialStartup = false;
|
||||||
|
|
||||||
// NOTE: Despite having a lockless queue, this lock is required
|
// NOTE: Despite having a lockless queue, this lock is required
|
||||||
// to make sure there is never no compile thread while there
|
// to make sure there is never no compile thread while there
|
||||||
// are still scripts to compile. This could otherwise happen
|
// are still scripts to compile. This could otherwise happen
|
||||||
|
@ -1084,12 +1090,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||||
lock (m_CompileQueue)
|
lock (m_CompileQueue)
|
||||||
m_CurrentCompile = null;
|
m_CurrentCompile = null;
|
||||||
|
|
||||||
m_Scene.EventManager.TriggerEmptyScriptCompileQueue(m_ScriptFailCount,
|
|
||||||
m_ScriptErrorMessage);
|
|
||||||
|
|
||||||
m_ScriptFailCount = 0;
|
|
||||||
m_InitialStartup = false;
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue