From 94aaf67dfaafbcbd4d871f674c465a34c1c1f332 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Sun, 21 Sep 2008 21:47:00 +0000 Subject: Change the scirpt engine loading mechanism. Script engines are now ordinary region modules and are able to coexist in one instance. See http://opensimulator.org/wiki/ScriptEngines for details. There were changes to OpenSim.ini.example, please note DefaultScriptEngine. Also see the User docs and FAQ on the Wiki. Default is DotNetEngine. --- .../Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs') diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs index 60333b1..47cb2fd 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs @@ -64,6 +64,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase private static bool PrivateThread; private int LoadUnloadMaxQueueSize; private Object scriptLock = new Object(); + private bool m_started = false; // Load/Unload structure private struct LUStruct @@ -119,6 +120,8 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase public abstract void Initialize(); public void Start() { + m_started = true; + ReadConfig(); Initialize(); @@ -213,6 +216,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase public void DoScriptLoadUnload() { + if (!m_started) + return; + lock (LUQueue) { if (LUQueue.Count > 0) @@ -258,7 +264,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase { lock (LUQueue) { - if (LUQueue.Count >= LoadUnloadMaxQueueSize) + if ((LUQueue.Count >= LoadUnloadMaxQueueSize) && m_started) { 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."); return; -- cgit v1.1