diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Common/ScriptEngineBase')
8 files changed, 64 insertions, 82 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AppDomainManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AppDomainManager.cs index 2ed0529..0fb8d75 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AppDomainManager.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AppDomainManager.cs | |||
@@ -26,7 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | |||
30 | using System; | 29 | using System; |
31 | using System.Collections; | 30 | using System.Collections; |
32 | using System.Collections.Generic; | 31 | using System.Collections.Generic; |
@@ -37,7 +36,6 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
37 | { | 36 | { |
38 | public class AppDomainManager : iScriptEngineFunctionModule | 37 | public class AppDomainManager : iScriptEngineFunctionModule |
39 | { | 38 | { |
40 | |||
41 | // | 39 | // |
42 | // This class does AppDomain handling and loading/unloading of scripts in it. | 40 | // This class does AppDomain handling and loading/unloading of scripts in it. |
43 | // It is instanced in "ScriptEngine" and controlled from "ScriptManager" | 41 | // It is instanced in "ScriptEngine" and controlled from "ScriptManager" |
@@ -48,7 +46,6 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
48 | // 4. Unload AppDomain completely when all scripts in it has stopped | 46 | // 4. Unload AppDomain completely when all scripts in it has stopped |
49 | // | 47 | // |
50 | 48 | ||
51 | |||
52 | private int maxScriptsPerAppDomain = 1; | 49 | private int maxScriptsPerAppDomain = 1; |
53 | 50 | ||
54 | /// <summary> | 51 | /// <summary> |
@@ -149,8 +146,8 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
149 | ads.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; | 146 | ads.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; |
150 | 147 | ||
151 | AppDomain AD = AppDomain.CreateDomain("ScriptAppDomain_" + AppDomainNameCount, null, ads); | 148 | AppDomain AD = AppDomain.CreateDomain("ScriptAppDomain_" + AppDomainNameCount, null, ads); |
152 | m_scriptEngine.Log.Verbose(m_scriptEngine.ScriptEngineName, "AppDomain Loading: " + | 149 | m_scriptEngine.Log.Info("[" + m_scriptEngine.ScriptEngineName + "]: AppDomain Loading: " + |
153 | AssemblyName.GetAssemblyName("OpenSim.Region.ScriptEngine.Common.dll").ToString()); | 150 | AssemblyName.GetAssemblyName("OpenSim.Region.ScriptEngine.Common.dll").ToString()); |
154 | AD.Load(AssemblyName.GetAssemblyName("OpenSim.Region.ScriptEngine.Common.dll")); | 151 | AD.Load(AssemblyName.GetAssemblyName("OpenSim.Region.ScriptEngine.Common.dll")); |
155 | 152 | ||
156 | // Return the new AppDomain | 153 | // Return the new AppDomain |
@@ -183,7 +180,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
183 | // Unload | 180 | // Unload |
184 | AppDomain.Unload(ads.CurrentAppDomain); | 181 | AppDomain.Unload(ads.CurrentAppDomain); |
185 | #if DEBUG | 182 | #if DEBUG |
186 | m_scriptEngine.Log.Verbose(m_scriptEngine.ScriptEngineName, "AppDomain unload freed " + (m - GC.GetTotalMemory(true)) + " bytes of memory"); | 183 | m_scriptEngine.Log.Info("[" + m_scriptEngine.ScriptEngineName + "]: AppDomain unload freed " + (m - GC.GetTotalMemory(true)) + " bytes of memory"); |
187 | #endif | 184 | #endif |
188 | } | 185 | } |
189 | } | 186 | } |
@@ -191,14 +188,13 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
191 | } // lock | 188 | } // lock |
192 | } | 189 | } |
193 | 190 | ||
194 | |||
195 | public IScript LoadScript(string FileName) | 191 | public IScript LoadScript(string FileName) |
196 | { | 192 | { |
197 | // Find next available AppDomain to put it in | 193 | // Find next available AppDomain to put it in |
198 | AppDomainStructure FreeAppDomain = GetFreeAppDomain(); | 194 | AppDomainStructure FreeAppDomain = GetFreeAppDomain(); |
199 | 195 | ||
200 | #if DEBUG | 196 | #if DEBUG |
201 | m_scriptEngine.Log.Verbose(m_scriptEngine.ScriptEngineName, "Loading into AppDomain: " + FileName); | 197 | m_scriptEngine.Log.Info("[" + m_scriptEngine.ScriptEngineName + "]: Loading into AppDomain: " + FileName); |
202 | #endif | 198 | #endif |
203 | IScript mbrt = | 199 | IScript mbrt = |
204 | (IScript) | 200 | (IScript) |
@@ -220,7 +216,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
220 | lock (freeLock) | 216 | lock (freeLock) |
221 | { | 217 | { |
222 | #if DEBUG | 218 | #if DEBUG |
223 | m_scriptEngine.Log.Verbose(m_scriptEngine.ScriptEngineName, "Stopping script in AppDomain"); | 219 | m_scriptEngine.Log.Info("[" + m_scriptEngine.ScriptEngineName + "]: Stopping script in AppDomain"); |
224 | #endif | 220 | #endif |
225 | // Check if it is current AppDomain | 221 | // Check if it is current AppDomain |
226 | if (currentAD.CurrentAppDomain == ad) | 222 | if (currentAD.CurrentAppDomain == ad) |
@@ -244,6 +240,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
244 | 240 | ||
245 | UnloadAppDomains(); // Outsite lock, has its own GetLock | 241 | UnloadAppDomains(); // Outsite lock, has its own GetLock |
246 | } | 242 | } |
243 | |||
247 | /// <summary> | 244 | /// <summary> |
248 | /// If set to true then threads and stuff should try to make a graceful exit | 245 | /// If set to true then threads and stuff should try to make a graceful exit |
249 | /// </summary> | 246 | /// </summary> |
@@ -253,6 +250,5 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
253 | set { _PleaseShutdown = value; } | 250 | set { _PleaseShutdown = value; } |
254 | } | 251 | } |
255 | private bool _PleaseShutdown = false; | 252 | private bool _PleaseShutdown = false; |
256 | |||
257 | } | 253 | } |
258 | } \ No newline at end of file | 254 | } |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/Common.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/Common.cs index fe6dfcd..e99f0a7 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/Common.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/Common.cs | |||
@@ -26,7 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | |||
30 | namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | 29 | namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase |
31 | { | 30 | { |
32 | public static class Common | 31 | public static class Common |
@@ -36,23 +35,23 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
36 | 35 | ||
37 | // This class just contains some static log stuff used for debugging. | 36 | // This class just contains some static log stuff used for debugging. |
38 | 37 | ||
39 | //public delegate void SendToDebugEventDelegate(string Message); | 38 | //public delegate void SendToDebugEventDelegate(string message); |
40 | //public delegate void SendToLogEventDelegate(string Message); | 39 | //public delegate void SendToLogEventDelegate(string message); |
41 | //static public event SendToDebugEventDelegate SendToDebugEvent; | 40 | //static public event SendToDebugEventDelegate SendToDebugEvent; |
42 | //static public event SendToLogEventDelegate SendToLogEvent; | 41 | //static public event SendToLogEventDelegate SendToLogEvent; |
43 | 42 | ||
44 | public static void SendToDebug(string Message) | 43 | public static void SendToDebug(string message) |
45 | { | 44 | { |
46 | //if (Debug == true) | 45 | //if (Debug == true) |
47 | mySE.Log.Verbose(mySE.ScriptEngineName, "Debug: " + Message); | 46 | mySE.Log.Info("[" + mySE.ScriptEngineName + "]: Debug: " + message); |
48 | //SendToDebugEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message); | 47 | //SendToDebugEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + message); |
49 | } | 48 | } |
50 | 49 | ||
51 | public static void SendToLog(string Message) | 50 | public static void SendToLog(string message) |
52 | { | 51 | { |
53 | //if (Debug == true) | 52 | //if (Debug == true) |
54 | mySE.Log.Verbose(mySE.ScriptEngineName, "LOG: " + Message); | 53 | mySE.Log.Info("[" + mySE.ScriptEngineName + "]: LOG: " + message); |
55 | //SendToLogEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message); | 54 | //SendToLogEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + message); |
56 | } | 55 | } |
57 | } | 56 | } |
58 | } \ No newline at end of file | 57 | } |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs index 678c3d0..1de010a 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventManager.cs | |||
@@ -39,7 +39,6 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
39 | [Serializable] | 39 | [Serializable] |
40 | public class EventManager : OpenSim.Region.ScriptEngine.Common.ScriptServerInterfaces.RemoteEvents, iScriptEngineFunctionModule | 40 | public class EventManager : OpenSim.Region.ScriptEngine.Common.ScriptServerInterfaces.RemoteEvents, iScriptEngineFunctionModule |
41 | { | 41 | { |
42 | |||
43 | // | 42 | // |
44 | // Class is instanced in "ScriptEngine" and Uses "EventQueueManager" that is also instanced in "ScriptEngine". | 43 | // Class is instanced in "ScriptEngine" and Uses "EventQueueManager" that is also instanced in "ScriptEngine". |
45 | // This class needs a bit of explaining: | 44 | // This class needs a bit of explaining: |
@@ -65,7 +64,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
65 | // We may not want to do it because someone is controlling us and will deliver events to us | 64 | // We may not want to do it because someone is controlling us and will deliver events to us |
66 | if (performHookUp) | 65 | if (performHookUp) |
67 | { | 66 | { |
68 | myScriptEngine.Log.Verbose(myScriptEngine.ScriptEngineName, "Hooking up to server events"); | 67 | myScriptEngine.Log.Info("[" + myScriptEngine.ScriptEngineName + "]: Hooking up to server events"); |
69 | myScriptEngine.World.EventManager.OnObjectGrab += touch_start; | 68 | myScriptEngine.World.EventManager.OnObjectGrab += touch_start; |
70 | myScriptEngine.World.EventManager.OnRezScript += OnRezScript; | 69 | myScriptEngine.World.EventManager.OnRezScript += OnRezScript; |
71 | myScriptEngine.World.EventManager.OnRemoveScript += OnRemoveScript; | 70 | myScriptEngine.World.EventManager.OnRemoveScript += OnRemoveScript; |
@@ -78,7 +77,6 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
78 | { | 77 | { |
79 | } | 78 | } |
80 | 79 | ||
81 | |||
82 | public void changed(uint localID, uint change) | 80 | public void changed(uint localID, uint change) |
83 | { | 81 | { |
84 | // Add to queue for all scripts in localID, Object pass change. | 82 | // Add to queue for all scripts in localID, Object pass change. |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueManager.cs index e1b1b6c..5e06fcd 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueManager.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueManager.cs | |||
@@ -44,7 +44,6 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
44 | [Serializable] | 44 | [Serializable] |
45 | public class EventQueueManager : iScriptEngineFunctionModule | 45 | public class EventQueueManager : iScriptEngineFunctionModule |
46 | { | 46 | { |
47 | |||
48 | // | 47 | // |
49 | // Class is instanced in "ScriptEngine" and used by "EventManager" also instanced in "ScriptEngine". | 48 | // Class is instanced in "ScriptEngine" and used by "EventManager" also instanced in "ScriptEngine". |
50 | // | 49 | // |
@@ -256,16 +255,15 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
256 | 255 | ||
257 | #endregion | 256 | #endregion |
258 | 257 | ||
259 | |||
260 | #region " Start / stop script execution threads (ThreadClasses) " | 258 | #region " Start / stop script execution threads (ThreadClasses) " |
261 | private void StartNewThreadClass() | 259 | private void StartNewThreadClass() |
262 | { | 260 | { |
263 | EventQueueThreadClass eqtc = new EventQueueThreadClass(this); | 261 | EventQueueThreadClass eqtc = new EventQueueThreadClass(this); |
264 | eventQueueThreads.Add(eqtc); | 262 | eventQueueThreads.Add(eqtc); |
265 | staticGlobalEventQueueThreads.Add(eqtc); | 263 | staticGlobalEventQueueThreads.Add(eqtc); |
266 | m_ScriptEngine.Log.Debug(m_ScriptEngine.ScriptEngineName, "Started new script execution thread. Current thread count: " + eventQueueThreads.Count); | 264 | m_ScriptEngine.Log.Debug("[" + m_ScriptEngine.ScriptEngineName + "]: Started new script execution thread. Current thread count: " + eventQueueThreads.Count); |
267 | |||
268 | } | 265 | } |
266 | |||
269 | private void AbortThreadClass(EventQueueThreadClass threadClass) | 267 | private void AbortThreadClass(EventQueueThreadClass threadClass) |
270 | { | 268 | { |
271 | if (eventQueueThreads.Contains(threadClass)) | 269 | if (eventQueueThreads.Contains(threadClass)) |
@@ -279,10 +277,10 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
279 | } | 277 | } |
280 | catch (Exception ex) | 278 | catch (Exception ex) |
281 | { | 279 | { |
282 | m_ScriptEngine.Log.Error(m_ScriptEngine.ScriptEngineName + ":EventQueueManager", "If you see this, could you please report it to Tedd:"); | 280 | m_ScriptEngine.Log.Error("[" + m_ScriptEngine.ScriptEngineName + ":EventQueueManager]: If you see this, could you please report it to Tedd:"); |
283 | m_ScriptEngine.Log.Error(m_ScriptEngine.ScriptEngineName + ":EventQueueManager", "Script thread execution timeout kill ended in exception: " + ex.ToString()); | 281 | m_ScriptEngine.Log.Error("[" + m_ScriptEngine.ScriptEngineName + ":EventQueueManager]: Script thread execution timeout kill ended in exception: " + ex.ToString()); |
284 | } | 282 | } |
285 | m_ScriptEngine.Log.Debug(m_ScriptEngine.ScriptEngineName, "Killed script execution thread. Remaining thread count: " + eventQueueThreads.Count); | 283 | m_ScriptEngine.Log.Debug("[" + m_ScriptEngine.ScriptEngineName + "]: Killed script execution thread. Remaining thread count: " + eventQueueThreads.Count); |
286 | } | 284 | } |
287 | #endregion | 285 | #endregion |
288 | 286 | ||
@@ -334,8 +332,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
334 | public void AddToObjectQueue(uint localID, string FunctionName, Queue_llDetectParams_Struct qParams, params object[] param) | 332 | public void AddToObjectQueue(uint localID, string FunctionName, Queue_llDetectParams_Struct qParams, params object[] param) |
335 | { | 333 | { |
336 | // Determine all scripts in Object and add to their queue | 334 | // Determine all scripts in Object and add to their queue |
337 | //myScriptEngine.m_logger.Verbose(ScriptEngineName, "EventQueueManager Adding localID: " + localID + ", FunctionName: " + FunctionName); | 335 | //myScriptEngine.log.Info("[" + ScriptEngineName + "]: EventQueueManager Adding localID: " + localID + ", FunctionName: " + FunctionName); |
338 | |||
339 | 336 | ||
340 | // Do we have any scripts in this object at all? If not, return | 337 | // Do we have any scripts in this object at all? If not, return |
341 | if (m_ScriptEngine.m_ScriptManager.Scripts.ContainsKey(localID) == false) | 338 | if (m_ScriptEngine.m_ScriptManager.Scripts.ContainsKey(localID) == false) |
@@ -368,8 +365,8 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
368 | { | 365 | { |
369 | if (eventQueue.Count >= EventExecutionMaxQueueSize) | 366 | if (eventQueue.Count >= EventExecutionMaxQueueSize) |
370 | { | 367 | { |
371 | m_ScriptEngine.Log.Error(m_ScriptEngine.ScriptEngineName, "ERROR: Event execution queue item count is at " + eventQueue.Count + ". Config variable \"EventExecutionMaxQueueSize\" is set to " + EventExecutionMaxQueueSize + ", so ignoring new event."); | 368 | m_ScriptEngine.Log.Error("[" + m_ScriptEngine.ScriptEngineName + "]: ERROR: Event execution queue item count is at " + eventQueue.Count + ". Config variable \"EventExecutionMaxQueueSize\" is set to " + EventExecutionMaxQueueSize + ", so ignoring new event."); |
372 | m_ScriptEngine.Log.Error(m_ScriptEngine.ScriptEngineName, "Event ignored: localID: " + localID + ", itemID: " + itemID + ", FunctionName: " + FunctionName); | 369 | m_ScriptEngine.Log.Error("[" + m_ScriptEngine.ScriptEngineName + "]: Event ignored: localID: " + localID + ", itemID: " + itemID + ", FunctionName: " + FunctionName); |
373 | return; | 370 | return; |
374 | } | 371 | } |
375 | 372 | ||
@@ -456,6 +453,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
456 | } | 453 | } |
457 | } | 454 | } |
458 | #endregion | 455 | #endregion |
456 | |||
459 | /// <summary> | 457 | /// <summary> |
460 | /// If set to true then threads and stuff should try to make a graceful exit | 458 | /// If set to true then threads and stuff should try to make a graceful exit |
461 | /// </summary> | 459 | /// </summary> |
@@ -465,6 +463,5 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
465 | set { _PleaseShutdown = value; } | 463 | set { _PleaseShutdown = value; } |
466 | } | 464 | } |
467 | private bool _PleaseShutdown = false; | 465 | private bool _PleaseShutdown = false; |
468 | |||
469 | } | 466 | } |
470 | } \ No newline at end of file | 467 | } |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs index ee38306..afa1839 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs | |||
@@ -96,7 +96,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
96 | break; | 96 | break; |
97 | default: | 97 | default: |
98 | MyThreadPriority = ThreadPriority.BelowNormal; // Default | 98 | MyThreadPriority = ThreadPriority.BelowNormal; // Default |
99 | eventQueueManager.m_ScriptEngine.Log.Error("ScriptEngineBase", "Unknown priority type \"" + pri + "\" in config file. Defaulting to \"BelowNormal\"."); | 99 | eventQueueManager.m_ScriptEngine.Log.Error("[ScriptEngineBase]: Unknown priority type \"" + pri + "\" in config file. Defaulting to \"BelowNormal\"."); |
100 | break; | 100 | break; |
101 | } | 101 | } |
102 | 102 | ||
@@ -137,7 +137,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
137 | } | 137 | } |
138 | catch (Exception) | 138 | catch (Exception) |
139 | { | 139 | { |
140 | //myScriptEngine.Log.Verbose(ScriptEngineName, "EventQueueManager Exception killing worker thread: " + e.ToString()); | 140 | //myScriptEngine.Log.Info("[" + ScriptEngineName + "]: EventQueueManager Exception killing worker thread: " + e.ToString()); |
141 | } | 141 | } |
142 | } | 142 | } |
143 | } | 143 | } |
@@ -147,7 +147,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
147 | /// </summary> | 147 | /// </summary> |
148 | private void EventQueueThreadLoop() | 148 | private void EventQueueThreadLoop() |
149 | { | 149 | { |
150 | //myScriptEngine.m_logger.Verbose(ScriptEngineName, "EventQueueManager Worker thread spawned"); | 150 | //myScriptEngine.Log.Info("[" + ScriptEngineName + "]: EventQueueManager Worker thread spawned"); |
151 | try | 151 | try |
152 | { | 152 | { |
153 | while (true) | 153 | while (true) |
@@ -196,7 +196,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
196 | else | 196 | else |
197 | { | 197 | { |
198 | // Something in queue, process | 198 | // Something in queue, process |
199 | //myScriptEngine.m_logger.Verbose(ScriptEngineName, "Processing event for localID: " + QIS.localID + ", itemID: " + QIS.itemID + ", FunctionName: " + QIS.FunctionName); | 199 | //myScriptEngine.Log.Info("[" + ScriptEngineName + "]: Processing event for localID: " + QIS.localID + ", itemID: " + QIS.itemID + ", FunctionName: " + QIS.FunctionName); |
200 | 200 | ||
201 | // OBJECT BASED LOCK - TWO THREADS WORKING ON SAME OBJECT IS NOT GOOD | 201 | // OBJECT BASED LOCK - TWO THREADS WORKING ON SAME OBJECT IS NOT GOOD |
202 | lock (eventQueueManager.queueLock) | 202 | lock (eventQueueManager.queueLock) |
@@ -228,12 +228,12 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
228 | try | 228 | try |
229 | { | 229 | { |
230 | #if DEBUG | 230 | #if DEBUG |
231 | eventQueueManager.m_ScriptEngine.Log.Debug(ScriptEngineName, | 231 | eventQueueManager.m_ScriptEngine.Log.Debug("[" + ScriptEngineName + "]: " + |
232 | "Executing event:\r\n" | 232 | "Executing event:\r\n" |
233 | + "QIS.localID: " + QIS.localID | 233 | + "QIS.localID: " + QIS.localID |
234 | + ", QIS.itemID: " + QIS.itemID | 234 | + ", QIS.itemID: " + QIS.itemID |
235 | + ", QIS.functionName: " + | 235 | + ", QIS.functionName: " + |
236 | QIS.functionName); | 236 | QIS.functionName); |
237 | #endif | 237 | #endif |
238 | LastExecutionStarted = DateTime.Now.Ticks; | 238 | LastExecutionStarted = DateTime.Now.Ticks; |
239 | KillCurrentScript = false; | 239 | KillCurrentScript = false; |
@@ -284,9 +284,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
284 | //else | 284 | //else |
285 | //{ | 285 | //{ |
286 | // T oconsole | 286 | // T oconsole |
287 | eventQueueManager.m_ScriptEngine.Log.Error(ScriptEngineName, | 287 | eventQueueManager.m_ScriptEngine.Log.Error("[" + ScriptEngineName + "]: " + |
288 | "Unable to send text in-world:\r\n" + | 288 | "Unable to send text in-world:\r\n" + |
289 | text); | 289 | text); |
290 | } | 290 | } |
291 | finally | 291 | finally |
292 | { | 292 | { |
@@ -309,17 +309,17 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
309 | } | 309 | } |
310 | catch (ThreadAbortException tae) | 310 | catch (ThreadAbortException tae) |
311 | { | 311 | { |
312 | eventQueueManager.m_ScriptEngine.Log.Notice(ScriptEngineName, "ThreadAbortException while executing function."); | 312 | eventQueueManager.m_ScriptEngine.Log.Info("[" + ScriptEngineName + "]: ThreadAbortException while executing function."); |
313 | } | 313 | } |
314 | catch (Exception e) | 314 | catch (Exception e) |
315 | { | 315 | { |
316 | eventQueueManager.m_ScriptEngine.Log.Error(ScriptEngineName, "Exception in EventQueueThreadLoop: " + e.ToString()); | 316 | eventQueueManager.m_ScriptEngine.Log.Error("[" + ScriptEngineName + "]: Exception in EventQueueThreadLoop: " + e.ToString()); |
317 | } | 317 | } |
318 | } // while | 318 | } // while |
319 | } // try | 319 | } // try |
320 | catch (ThreadAbortException) | 320 | catch (ThreadAbortException) |
321 | { | 321 | { |
322 | //myScriptEngine.Log.Verbose(ScriptEngineName, "EventQueueManager Worker thread killed: " + tae.Message); | 322 | //myScriptEngine.Log.Info("[" + ScriptEngineName + "]: EventQueueManager Worker thread killed: " + tae.Message); |
323 | } | 323 | } |
324 | } | 324 | } |
325 | 325 | ||
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/MaintenanceThread.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/MaintenanceThread.cs index 4a119f0..ab4ea04 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/MaintenanceThread.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/MaintenanceThread.cs | |||
@@ -87,7 +87,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
87 | private void StopMaintenanceThread() | 87 | private void StopMaintenanceThread() |
88 | { | 88 | { |
89 | #if DEBUG | 89 | #if DEBUG |
90 | m_ScriptEngine.Log.Debug(m_ScriptEngine.ScriptEngineName, "StopMaintenanceThread() called"); | 90 | m_ScriptEngine.Log.Debug("[" + m_ScriptEngine.ScriptEngineName + "]: StopMaintenanceThread() called"); |
91 | #endif | 91 | #endif |
92 | PleaseShutdown = true; | 92 | PleaseShutdown = true; |
93 | Thread.Sleep(100); | 93 | Thread.Sleep(100); |
@@ -103,7 +103,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
103 | } | 103 | } |
104 | catch (Exception ex) | 104 | catch (Exception ex) |
105 | { | 105 | { |
106 | m_ScriptEngine.Log.Error(m_ScriptEngine.ScriptEngineName, "Exception stopping maintenence thread: " + ex.ToString()); | 106 | m_ScriptEngine.Log.Error("[" + m_ScriptEngine.ScriptEngineName + "]: Exception stopping maintenence thread: " + ex.ToString()); |
107 | } | 107 | } |
108 | } | 108 | } |
109 | 109 | ||
@@ -113,8 +113,8 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
113 | public void MaintenanceLoop() | 113 | public void MaintenanceLoop() |
114 | { | 114 | { |
115 | if (m_ScriptEngine.m_EventQueueManager.maxFunctionExecutionTimens < MaintenanceLoopms) | 115 | if (m_ScriptEngine.m_EventQueueManager.maxFunctionExecutionTimens < MaintenanceLoopms) |
116 | m_ScriptEngine.Log.Warn(m_ScriptEngine.ScriptEngineName, | 116 | m_ScriptEngine.Log.Warn("[" + m_ScriptEngine.ScriptEngineName + "]: " + |
117 | "Configuration error: MaxEventExecutionTimeMs is less than MaintenanceLoopms. The Maintenance Loop will only check scripts once per run."); | 117 | "Configuration error: MaxEventExecutionTimeMs is less than MaintenanceLoopms. The Maintenance Loop will only check scripts once per run."); |
118 | 118 | ||
119 | long Last_maxFunctionExecutionTimens = 0; // DateTime.Now.Ticks; | 119 | long Last_maxFunctionExecutionTimens = 0; // DateTime.Now.Ticks; |
120 | long Last_ReReadConfigFilens = DateTime.Now.Ticks; | 120 | long Last_ReReadConfigFilens = DateTime.Now.Ticks; |
@@ -170,7 +170,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
170 | } | 170 | } |
171 | catch (Exception ex) | 171 | catch (Exception ex) |
172 | { | 172 | { |
173 | m_ScriptEngine.Log.Error(m_ScriptEngine.ScriptEngineName, "Exception in MaintenanceLoopThread. Thread will recover after 5 sec throttle. Exception: " + ex.ToString()); | 173 | m_ScriptEngine.Log.Error("[" + m_ScriptEngine.ScriptEngineName + "]: Exception in MaintenanceLoopThread. Thread will recover after 5 sec throttle. Exception: " + ex.ToString()); |
174 | Thread.Sleep(5000); | 174 | Thread.Sleep(5000); |
175 | } | 175 | } |
176 | } | 176 | } |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs index f09e631..78d9f7d 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptEngine.cs | |||
@@ -26,7 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | |||
30 | using System; | 29 | using System; |
31 | using System.IO; | 30 | using System.IO; |
32 | using Nini.Config; | 31 | using Nini.Config; |
@@ -45,6 +44,8 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
45 | [Serializable] | 44 | [Serializable] |
46 | public abstract class ScriptEngine : IRegionModule, OpenSim.Region.ScriptEngine.Common.ScriptServerInterfaces.ScriptEngine, iScriptEngineFunctionModule | 45 | public abstract class ScriptEngine : IRegionModule, OpenSim.Region.ScriptEngine.Common.ScriptServerInterfaces.ScriptEngine, iScriptEngineFunctionModule |
47 | { | 46 | { |
47 | private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | ||
48 | |||
48 | public Scene World; | 49 | public Scene World; |
49 | public EventManager m_EventManager; // Handles and queues incoming events from OpenSim | 50 | public EventManager m_EventManager; // Handles and queues incoming events from OpenSim |
50 | public EventQueueManager m_EventQueueManager; // Executes events, handles script threads | 51 | public EventQueueManager m_EventQueueManager; // Executes events, handles script threads |
@@ -73,7 +74,10 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
73 | 74 | ||
74 | public abstract ScriptManager _GetScriptManager(); | 75 | public abstract ScriptManager _GetScriptManager(); |
75 | 76 | ||
76 | private LogBase m_log; | 77 | public log4net.ILog Log |
78 | { | ||
79 | get { return m_log; } | ||
80 | } | ||
77 | 81 | ||
78 | public ScriptEngine() | 82 | public ScriptEngine() |
79 | { | 83 | { |
@@ -81,25 +85,18 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
81 | Common.mySE = this; | 85 | Common.mySE = this; |
82 | } | 86 | } |
83 | 87 | ||
84 | public LogBase Log | 88 | public void InitializeEngine(Scene Sceneworld, IConfigSource config, bool HookUpToServer, ScriptManager newScriptManager) |
85 | { | ||
86 | get { return m_log; } | ||
87 | } | ||
88 | |||
89 | public void InitializeEngine(Scene Sceneworld, IConfigSource config, LogBase logger, bool HookUpToServer, ScriptManager newScriptManager) | ||
90 | { | 89 | { |
91 | World = Sceneworld; | 90 | World = Sceneworld; |
92 | m_log = logger; | ||
93 | ConfigSource = config; | 91 | ConfigSource = config; |
94 | Log.Verbose(ScriptEngineName, "ScriptEngine initializing"); | 92 | m_log.Info("[" + ScriptEngineName + "]: ScriptEngine initializing"); |
95 | 93 | ||
96 | // Make sure we have config | 94 | // Make sure we have config |
97 | if (ConfigSource.Configs[ScriptEngineName] == null) | 95 | if (ConfigSource.Configs[ScriptEngineName] == null) |
98 | ConfigSource.AddConfig(ScriptEngineName); | 96 | ConfigSource.AddConfig(ScriptEngineName); |
99 | ScriptConfigSource = ConfigSource.Configs[ScriptEngineName]; | 97 | ScriptConfigSource = ConfigSource.Configs[ScriptEngineName]; |
100 | 98 | ||
101 | 99 | //m_log.Info("[" + ScriptEngineName + "]: InitializeEngine"); | |
102 | //m_logger.Status(ScriptEngineName, "InitializeEngine"); | ||
103 | 100 | ||
104 | // Create all objects we'll be using | 101 | // Create all objects we'll be using |
105 | m_EventQueueManager = new EventQueueManager(this); | 102 | m_EventQueueManager = new EventQueueManager(this); |
@@ -111,11 +108,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
111 | m_ASYNCLSLCommandManager = new AsyncLSLCommandManager(this); | 108 | m_ASYNCLSLCommandManager = new AsyncLSLCommandManager(this); |
112 | m_MaintenanceThread = new MaintenanceThread(this); | 109 | m_MaintenanceThread = new MaintenanceThread(this); |
113 | 110 | ||
114 | Log.Verbose(ScriptEngineName, "Reading configuration from config section \"" + ScriptEngineName + "\""); | 111 | m_log.Info("[" + ScriptEngineName + "]: Reading configuration from config section \"" + ScriptEngineName + "\""); |
115 | ReadConfig(); | 112 | ReadConfig(); |
116 | 113 | ||
117 | |||
118 | |||
119 | // Should we iterate the region for scripts that needs starting? | 114 | // Should we iterate the region for scripts that needs starting? |
120 | // Or can we assume we are loaded before anything else so we can use proper events? | 115 | // Or can we assume we are loaded before anything else so we can use proper events? |
121 | } | 116 | } |
@@ -129,10 +124,11 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
129 | { | 124 | { |
130 | return this.m_EventManager; | 125 | return this.m_EventManager; |
131 | } | 126 | } |
127 | |||
132 | public void ReadConfig() | 128 | public void ReadConfig() |
133 | { | 129 | { |
134 | //#if DEBUG | 130 | //#if DEBUG |
135 | // Log.Debug(ScriptEngineName, "Refreshing configuration for all modules"); | 131 | // m_log.Debug("[" + ScriptEngineName + "]: Refreshing configuration for all modules"); |
136 | //#endif | 132 | //#endif |
137 | RefreshConfigFileSeconds = ScriptConfigSource.GetInt("RefreshConfig", 30); | 133 | RefreshConfigFileSeconds = ScriptConfigSource.GetInt("RefreshConfig", 30); |
138 | 134 | ||
@@ -153,10 +149,8 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
153 | if (m_AppDomainManager != null) m_AppDomainManager.ReadConfig(); | 149 | if (m_AppDomainManager != null) m_AppDomainManager.ReadConfig(); |
154 | if (m_ASYNCLSLCommandManager != null) m_ASYNCLSLCommandManager.ReadConfig(); | 150 | if (m_ASYNCLSLCommandManager != null) m_ASYNCLSLCommandManager.ReadConfig(); |
155 | if (m_MaintenanceThread != null) m_MaintenanceThread.ReadConfig(); | 151 | if (m_MaintenanceThread != null) m_MaintenanceThread.ReadConfig(); |
156 | |||
157 | } | 152 | } |
158 | 153 | ||
159 | |||
160 | #region IRegionModule | 154 | #region IRegionModule |
161 | 155 | ||
162 | public abstract void Initialise(Scene scene, IConfigSource config); | 156 | public abstract void Initialise(Scene scene, IConfigSource config); |
@@ -179,8 +173,6 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
179 | get { return false; } | 173 | get { return false; } |
180 | } | 174 | } |
181 | 175 | ||
182 | |||
183 | |||
184 | #endregion | 176 | #endregion |
185 | 177 | ||
186 | /// <summary> | 178 | /// <summary> |
@@ -194,4 +186,4 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
194 | private bool _PleaseShutdown = false; | 186 | private bool _PleaseShutdown = false; |
195 | 187 | ||
196 | } | 188 | } |
197 | } \ No newline at end of file | 189 | } |
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs index 6661fcc..12d26fc 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/ScriptManager.cs | |||
@@ -249,7 +249,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
249 | { | 249 | { |
250 | if (LUQueue.Count >= LoadUnloadMaxQueueSize) | 250 | if (LUQueue.Count >= LoadUnloadMaxQueueSize) |
251 | { | 251 | { |
252 | 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."); | 252 | 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."); |
253 | return; | 253 | return; |
254 | } | 254 | } |
255 | 255 | ||
@@ -299,7 +299,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
299 | Console.WriteLine("ScriptEngine: Inside ExecuteEvent for event " + FunctionName); | 299 | Console.WriteLine("ScriptEngine: Inside ExecuteEvent for event " + FunctionName); |
300 | #endif | 300 | #endif |
301 | // Execute a function in the script | 301 | // Execute a function in the script |
302 | //m_scriptEngine.Log.Verbose(ScriptEngineName, "Executing Function localID: " + localID + ", itemID: " + itemID + ", FunctionName: " + FunctionName); | 302 | //m_scriptEngine.Log.Info("[" + ScriptEngineName + "]: Executing Function localID: " + localID + ", itemID: " + itemID + ", FunctionName: " + FunctionName); |
303 | //ScriptBaseInterface Script = (ScriptBaseInterface)GetScript(localID, itemID); | 303 | //ScriptBaseInterface Script = (ScriptBaseInterface)GetScript(localID, itemID); |
304 | IScript Script = GetScript(localID, itemID); | 304 | IScript Script = GetScript(localID, itemID); |
305 | if (Script == null) | 305 | if (Script == null) |
@@ -418,4 +418,4 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
418 | private bool _PleaseShutdown = false; | 418 | private bool _PleaseShutdown = false; |
419 | 419 | ||
420 | } | 420 | } |
421 | } \ No newline at end of file | 421 | } |