diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs index ea87581..45cfced 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs | |||
@@ -57,12 +57,12 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
57 | // This so that scripts starting or stopping will not slow down other theads or whole system. | 57 | // This so that scripts starting or stopping will not slow down other theads or whole system. |
58 | // | 58 | // |
59 | [Serializable] | 59 | [Serializable] |
60 | public abstract class ScriptManager | 60 | public abstract class ScriptManager : iScriptEngineFunctionModule |
61 | { | 61 | { |
62 | #region Declares | 62 | #region Declares |
63 | 63 | ||
64 | private Thread scriptLoadUnloadThread; | 64 | private Thread scriptLoadUnloadThread; |
65 | private int scriptLoadUnloadThread_IdleSleepms = 100; | 65 | private int scriptLoadUnloadThread_IdleSleepms; |
66 | private Queue<LUStruct> LUQueue = new Queue<LUStruct>(); | 66 | private Queue<LUStruct> LUQueue = new Queue<LUStruct>(); |
67 | 67 | ||
68 | 68 | ||
@@ -95,6 +95,11 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
95 | 95 | ||
96 | #endregion | 96 | #endregion |
97 | 97 | ||
98 | public void ReadConfig() | ||
99 | { | ||
100 | scriptLoadUnloadThread_IdleSleepms = m_scriptEngine.ScriptConfigSource.GetInt("ScriptLoadUnloadLoopms", 30); | ||
101 | } | ||
102 | |||
98 | #region Object init/shutdown | 103 | #region Object init/shutdown |
99 | 104 | ||
100 | public ScriptEngineBase.ScriptEngine m_scriptEngine; | 105 | public ScriptEngineBase.ScriptEngine m_scriptEngine; |
@@ -102,6 +107,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
102 | public ScriptManager(ScriptEngineBase.ScriptEngine scriptEngine) | 107 | public ScriptManager(ScriptEngineBase.ScriptEngine scriptEngine) |
103 | { | 108 | { |
104 | m_scriptEngine = scriptEngine; | 109 | m_scriptEngine = scriptEngine; |
110 | ReadConfig(); | ||
105 | AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); | 111 | AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve); |
106 | scriptLoadUnloadThread = new Thread(ScriptLoadUnloadThreadLoop); | 112 | scriptLoadUnloadThread = new Thread(ScriptLoadUnloadThreadLoop); |
107 | scriptLoadUnloadThread.Name = "ScriptLoadUnloadThread"; | 113 | scriptLoadUnloadThread.Name = "ScriptLoadUnloadThread"; |
@@ -238,7 +244,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
238 | Console.WriteLine("ScriptEngine: Inside ExecuteEvent for event " + FunctionName); | 244 | Console.WriteLine("ScriptEngine: Inside ExecuteEvent for event " + FunctionName); |
239 | #endif | 245 | #endif |
240 | // Execute a function in the script | 246 | // Execute a function in the script |
241 | //m_scriptEngine.Log.Verbose("ScriptEngine", "Executing Function localID: " + localID + ", itemID: " + itemID + ", FunctionName: " + FunctionName); | 247 | //m_scriptEngine.Log.Verbose(ScriptEngineName, "Executing Function localID: " + localID + ", itemID: " + itemID + ", FunctionName: " + FunctionName); |
242 | //ScriptBaseInterface Script = (ScriptBaseInterface)GetScript(localID, itemID); | 248 | //ScriptBaseInterface Script = (ScriptBaseInterface)GetScript(localID, itemID); |
243 | IScript Script = GetScript(localID, itemID); | 249 | IScript Script = GetScript(localID, itemID); |
244 | if (Script == null) | 250 | if (Script == null) |
@@ -345,5 +351,16 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
345 | } | 351 | } |
346 | 352 | ||
347 | #endregion | 353 | #endregion |
354 | |||
355 | /// <summary> | ||
356 | /// If set to true then threads and stuff should try to make a graceful exit | ||
357 | /// </summary> | ||
358 | public bool PleaseShutdown | ||
359 | { | ||
360 | get { return _PleaseShutdown; } | ||
361 | set { _PleaseShutdown = value; } | ||
362 | } | ||
363 | private bool _PleaseShutdown = false; | ||
364 | |||
348 | } | 365 | } |
349 | } \ No newline at end of file | 366 | } \ No newline at end of file |