while I'm not convinced this is causing my current run away
loop, this queue manipulation is dead wrong as Queue is not a synchronized data structure. Hopefully this helps.0.6.0-stable
parent
1b2415325a
commit
edd6577f84
|
@ -207,11 +207,11 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
|
|||
|
||||
public void DoScriptLoadUnload()
|
||||
{
|
||||
lock (LUQueue) {
|
||||
if (LUQueue.Count > 0)
|
||||
{
|
||||
LUStruct item = LUQueue.Dequeue();
|
||||
lock (startStopLock) // Lock so we have only 1 thread working on loading/unloading of scripts
|
||||
{
|
||||
|
||||
if (item.Action == LUType.Unload)
|
||||
{
|
||||
_StopScript(item.localID, item.itemID);
|
||||
|
@ -222,7 +222,6 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -250,6 +249,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
|
|||
/// <param name="localID"></param>
|
||||
public void StartScript(uint localID, LLUUID itemID, string Script)
|
||||
{
|
||||
lock(LUQueue) {
|
||||
if (LUQueue.Count >= LoadUnloadMaxQueueSize)
|
||||
{
|
||||
m_scriptEngine.Log.Error("[" + m_scriptEngine.ScriptEngineName + "]: ERROR: Load/unload queue item count is at " + LUQueue.Count + ". Config variable \"LoadUnloadMaxQueueSize\" is set to " + LoadUnloadMaxQueueSize + ", so ignoring new script.");
|
||||
|
@ -263,6 +263,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
|
|||
ls.Action = LUType.Load;
|
||||
LUQueue.Enqueue(ls);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Disables and unloads a script
|
||||
|
@ -275,8 +276,10 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
|
|||
ls.localID = localID;
|
||||
ls.itemID = itemID;
|
||||
ls.Action = LUType.Unload;
|
||||
lock (LUQueue) {
|
||||
LUQueue.Enqueue(ls);
|
||||
}
|
||||
}
|
||||
|
||||
// Create a new instance of the compiler (reuse)
|
||||
//private Compiler.LSL.Compiler LSLCompiler = new Compiler.LSL.Compiler();
|
||||
|
|
Loading…
Reference in New Issue