diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index 14715b8c17..f4e774bdbd 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs @@ -344,7 +344,6 @@ namespace OpenSim ExtensionNodeList nodes = AddinManager.GetExtensionNodes("/OpenSim/Startup"); MainLog.Instance.Verbose("PLUGINS", "Loading {0} OpenSim application plugins", nodes.Count); - int modcount = 0; foreach (TypeExtensionNode node in nodes) { IApplicationPlugin plugin = (IApplicationPlugin)node.CreateInstance(); diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index ac378aecb8..223bb8f654 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs @@ -63,20 +63,23 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine private Thread scriptLoadUnloadThread; private int scriptLoadUnloadThread_IdleSleepms = 100; - private Queue loadQueue = new Queue(); - private Queue unloadQueue = new Queue(); + private Queue LUQueue = new Queue(); + - private struct LoadStruct + // Load/Unload structure + private struct LUStruct { public uint localID; public LLUUID itemID; public string script; + public LUType Action; } - private struct UnloadStruct + private enum LUType { - public uint localID; - public LLUUID itemID; + Unknown = 0, + Load = 1, + Unload = 2 } // Object> @@ -136,17 +139,15 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine { while (true) { - if (loadQueue.Count == 0 && unloadQueue.Count == 0) + if (LUQueue.Count == 0) Thread.Sleep(scriptLoadUnloadThread_IdleSleepms); - if (unloadQueue.Count > 0) + if (LUQueue.Count > 0) { - UnloadStruct item = unloadQueue.Dequeue(); - _StopScript(item.localID, item.itemID); - } - if (loadQueue.Count > 0) - { - LoadStruct item = loadQueue.Dequeue(); - _StartScript(item.localID, item.itemID, item.script); + LUStruct item = LUQueue.Dequeue(); + if (item.Action == LUType.Unload) + _StopScript(item.localID, item.itemID); + if (item.Action == LUType.Load) + _StartScript(item.localID, item.itemID, item.script); } } } @@ -244,11 +245,12 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine /// public void StartScript(uint localID, LLUUID itemID, string Script) { - LoadStruct ls = new LoadStruct(); + LUStruct ls = new LUStruct(); ls.localID = localID; ls.itemID = itemID; ls.script = Script; - loadQueue.Enqueue(ls); + ls.Action = LUType.Load; + LUQueue.Enqueue(ls); } /// @@ -258,10 +260,11 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine /// public void StopScript(uint localID, LLUUID itemID) { - UnloadStruct ls = new UnloadStruct(); + LUStruct ls = new LUStruct(); ls.localID = localID; ls.itemID = itemID; - unloadQueue.Enqueue(ls); + ls.Action = LUType.Unload; + LUQueue.Enqueue(ls); } public void ResetScript(uint localID, LLUUID itemID) diff --git a/bin/Mono.Addins.dll b/bin/Mono.Addins.dll index 1071747773..5ea1418ea3 100644 Binary files a/bin/Mono.Addins.dll and b/bin/Mono.Addins.dll differ