From bf4d1fbb8dbfe3470d4381542e586e44d84c2a01 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Thu, 28 Aug 2008 00:37:22 +0000 Subject: Refactor IScriptInstance / IScriptEngine to use a generic IScriptWorkItem, which is a thin wrapper around a IWorkItemResult from the SmartThreadPool. However, it is very easy to reimplement on top of basic threading and therefore makes the IScriptInstance class independent of the specific threading implementation. --- OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs | 2 +- OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/ScriptEngine/Interfaces') diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs index 7c22eed..6b3804c 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptEngine.cs @@ -57,7 +57,7 @@ namespace OpenSim.Region.ScriptEngine.Interfaces bool GetScriptState(LLUUID itemID); void SetState(LLUUID itemID, string newState); int GetStartParameter(LLUUID itemID); - IWorkItemResult QueueEventHandler(object parms); + IScriptWorkItem QueueEventHandler(object parms); DetectParams GetDetectParams(LLUUID item, int number); } diff --git a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs index 03a3802..3aeb602 100644 --- a/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Interfaces/IScriptInstance.cs @@ -43,6 +43,13 @@ namespace OpenSim.Region.ScriptEngine.Interfaces AttachmentCrossing = 2 } + public interface IScriptWorkItem + { + bool Cancel(); + void Abort(); + bool Wait(TimeSpan t); + } + public interface IScriptInstance { bool Running { get; set; } -- cgit v1.1