From 2525810e2a1b23f9c5b17b3d075e02c0c6255e2c Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Tue, 27 Oct 2009 13:31:04 -0700 Subject: Removed the DotNetEngine scripting engine. You will need to create a fresh checkout or clean out all *DotNet*.dll assemblies from the bin/ directory to run OpenSim moving forward --- .../ScriptEngine/DotNetEngine/MaintenanceThread.cs | 238 --------------------- 1 file changed, 238 deletions(-) delete mode 100644 OpenSim/Region/ScriptEngine/DotNetEngine/MaintenanceThread.cs (limited to 'OpenSim/Region/ScriptEngine/DotNetEngine/MaintenanceThread.cs') diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/MaintenanceThread.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/MaintenanceThread.cs deleted file mode 100644 index 87fdf1f..0000000 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/MaintenanceThread.cs +++ /dev/null @@ -1,238 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections; -using System.Reflection; -using System.Threading; -using log4net; -using OpenSim.Framework; - -namespace OpenSim.Region.ScriptEngine.DotNetEngine -{ - /// - /// This class does maintenance on script engine. - /// - public class MaintenanceThread - { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - - //public ScriptEngine m_ScriptEngine; - private int MaintenanceLoopms; - private int MaintenanceLoopTicks_ScriptLoadUnload; - private int MaintenanceLoopTicks_Other; - - - public MaintenanceThread() - { - //m_ScriptEngine = _ScriptEngine; - - ReadConfig(); - - // Start maintenance thread - StartMaintenanceThread(); - } - - ~MaintenanceThread() - { - StopMaintenanceThread(); - } - - public void ReadConfig() - { - // Bad hack, but we need a m_ScriptEngine :) - lock (ScriptEngine.ScriptEngines) - { - foreach (ScriptEngine m_ScriptEngine in ScriptEngine.ScriptEngines) - { - MaintenanceLoopms = m_ScriptEngine.ScriptConfigSource.GetInt("MaintenanceLoopms", 50); - MaintenanceLoopTicks_ScriptLoadUnload = - m_ScriptEngine.ScriptConfigSource.GetInt("MaintenanceLoopTicks_ScriptLoadUnload", 1); - MaintenanceLoopTicks_Other = - m_ScriptEngine.ScriptConfigSource.GetInt("MaintenanceLoopTicks_Other", 10); - - return; - } - } - } - - #region " Maintenance thread " - /// - /// Maintenance thread. Enforcing max execution time for example. - /// - public Thread MaintenanceThreadThread; - - /// - /// Starts maintenance thread - /// - private void StartMaintenanceThread() - { - if (MaintenanceThreadThread == null) - { - MaintenanceThreadThread = Watchdog.StartThread(MaintenanceLoop, "ScriptMaintenanceThread", ThreadPriority.Normal, true); - } - } - - /// - /// Stops maintenance thread - /// - private void StopMaintenanceThread() - { -#if DEBUG - //m_log.Debug("[" + m_ScriptEngine.ScriptEngineName + "]: StopMaintenanceThread() called"); -#endif - //PleaseShutdown = true; - Thread.Sleep(100); - try - { - if (MaintenanceThreadThread != null && MaintenanceThreadThread.IsAlive) - { - MaintenanceThreadThread.Abort(); - } - } - catch (Exception) - { - //m_log.Error("[" + m_ScriptEngine.ScriptEngineName + "]: Exception stopping maintenence thread: " + ex.ToString()); - } - } - - // private ScriptEngine lastScriptEngine; // Keep track of what ScriptEngine instance we are at so we can give exception - /// - /// A thread should run in this loop and check all running scripts - /// - public void MaintenanceLoop() - { - //if (m_ScriptEngine.m_EventQueueManager.maxFunctionExecutionTimens < MaintenanceLoopms) - // m_log.Warn("[" + m_ScriptEngine.ScriptEngineName + "]: " + - // "Configuration error: MaxEventExecutionTimeMs is less than MaintenanceLoopms. The Maintenance Loop will only check scripts once per run."); - - long Last_maxFunctionExecutionTimens = 0; // DateTime.Now.Ticks; - long Last_ReReadConfigFilens = DateTime.Now.Ticks; - int MaintenanceLoopTicks_ScriptLoadUnload_Count = 0; - int MaintenanceLoopTicks_Other_Count = 0; - bool MaintenanceLoopTicks_ScriptLoadUnload_ResetCount = false; - bool MaintenanceLoopTicks_Other_ResetCount = false; - - while (true) - { - try - { - while (true) - { - Thread.Sleep(MaintenanceLoopms); // Sleep before next pass - - // Reset counters? - if (MaintenanceLoopTicks_ScriptLoadUnload_ResetCount) - { - MaintenanceLoopTicks_ScriptLoadUnload_ResetCount = false; - MaintenanceLoopTicks_ScriptLoadUnload_Count = 0; - } - if (MaintenanceLoopTicks_Other_ResetCount) - { - MaintenanceLoopTicks_Other_ResetCount = false; - MaintenanceLoopTicks_Other_Count = 0; - } - - // Increase our counters - MaintenanceLoopTicks_ScriptLoadUnload_Count++; - MaintenanceLoopTicks_Other_Count++; - - foreach (ScriptEngine m_ScriptEngine in new ArrayList(ScriptEngine.ScriptEngines)) - { - // lastScriptEngine = m_ScriptEngine; - // Re-reading config every x seconds - if (MaintenanceLoopTicks_Other_Count >= MaintenanceLoopTicks_Other) - { - MaintenanceLoopTicks_Other_ResetCount = true; - if (m_ScriptEngine.RefreshConfigFilens > 0) - { - // Check if its time to re-read config - if (DateTime.Now.Ticks - Last_ReReadConfigFilens > - m_ScriptEngine.RefreshConfigFilens) - { - //m_log.Debug("Time passed: " + (DateTime.Now.Ticks - Last_ReReadConfigFilens) + ">" + m_ScriptEngine.RefreshConfigFilens); - // Its time to re-read config file - m_ScriptEngine.ReadConfig(); - Last_ReReadConfigFilens = DateTime.Now.Ticks; // Reset time - } - - - // Adjust number of running script threads if not correct - if (m_ScriptEngine.m_EventQueueManager != null) - m_ScriptEngine.m_EventQueueManager.AdjustNumberOfScriptThreads(); - - // Check if any script has exceeded its max execution time - if (EventQueueManager.EnforceMaxExecutionTime) - { - // We are enforcing execution time - if (DateTime.Now.Ticks - Last_maxFunctionExecutionTimens > - EventQueueManager.maxFunctionExecutionTimens) - { - // Its time to check again - m_ScriptEngine.m_EventQueueManager.CheckScriptMaxExecTime(); // Do check - Last_maxFunctionExecutionTimens = DateTime.Now.Ticks; // Reset time - } - } - } - } - if (MaintenanceLoopTicks_ScriptLoadUnload_Count >= MaintenanceLoopTicks_ScriptLoadUnload) - { - MaintenanceLoopTicks_ScriptLoadUnload_ResetCount = true; - // LOAD / UNLOAD SCRIPTS - if (m_ScriptEngine.m_ScriptManager != null) - m_ScriptEngine.m_ScriptManager.DoScriptLoadUnload(); - } - } - - Watchdog.UpdateThread(); - } - } - catch(ThreadAbortException) - { - m_log.Error("Thread aborted in MaintenanceLoopThread. If this is during shutdown, please ignore"); - } - catch (Exception ex) - { - m_log.ErrorFormat("Exception in MaintenanceLoopThread. Thread will recover after 5 sec throttle. Exception: {0}", ex.ToString()); - } - } - - Watchdog.RemoveThread(); - } - #endregion - - ///// - ///// If set to true then threads and stuff should try to make a graceful exit - ///// - //public bool PleaseShutdown - //{ - // get { return _PleaseShutdown; } - // set { _PleaseShutdown = value; } - //} - //private bool _PleaseShutdown = false; - } -} -- cgit v1.1