diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs index 0cc0fe7d63..d3200d58ae 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs @@ -59,10 +59,15 @@ namespace OpenSim.Region.ScriptEngine.Interfaces public interface IScriptInstance { /// - /// Is this script currently running? + /// Is the script currently running? /// bool Running { get; set; } + /// + /// Is the script suspended? + /// + bool Suspended { get; set; } + bool ShuttingDown { get; set; } string State { get; set; } IScriptEngine Engine { get; } diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index 5a50714c79..ab46491683 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs @@ -96,7 +96,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance private bool m_startedFromSavedState; private UUID m_CurrentStateHash; private UUID m_RegionID; - private bool m_Suspended = false; private Dictionary, KeyValuePair> m_LineMap; @@ -140,6 +139,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance set { m_RunEvents = value; } } + public bool Suspended { get; set; } + public bool ShuttingDown { get { return m_ShuttingDown; } @@ -651,7 +652,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance lock (m_EventQueue) { - if (m_Suspended) + if (Suspended) return 0; lock (m_Script) @@ -1030,12 +1031,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance public void Suspend() { - m_Suspended = true; + Suspended = true; } public void Resume() { - m_Suspended = false; + Suspended = false; } } } diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 572ca07626..d606b3795a 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs @@ -354,11 +354,29 @@ namespace OpenSim.Region.ScriptEngine.XEngine foreach (IScriptInstance instance in m_Scripts.Values) { SceneObjectPart sop = m_Scene.GetSceneObjectPart(instance.ObjectID); + string status; + + if (instance.ShuttingDown) + { + status = "shutting down"; + } + else if (instance.Suspended) + { + status = "suspended"; + } + else if (!instance.Running) + { + status = "stopped"; + } + else + { + status = "running"; + } MainConsole.Instance.OutputFormat( - "{0}.{1}, script UUID {2}, prim UUID {3} @ {4}", + "{0}.{1}, script UUID {2}, prim UUID {3} @ {4} ({5})", instance.PrimName, instance.ScriptName, instance.AssetID, instance.ObjectID, - sop.AbsolutePosition, m_Scene.RegionInfo.RegionName); + sop.AbsolutePosition, status); } } }