mirror of
https://github.com/opensim/opensim.git
synced 2026-07-12 17:15:41 +08:00
Merge branch 'master' into careminster
This commit is contained in:
@@ -147,7 +147,13 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
|
||||
/// <summary>
|
||||
/// Stop the script instance.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This must not be called by a thread that is in the process of handling an event for this script. Otherwise
|
||||
/// there is a danger that it will self-abort and not complete the reset.
|
||||
/// </remarks>
|
||||
/// <param name="timeout"></param>
|
||||
/// How many milliseconds we will wait for an existing script event to finish before
|
||||
/// forcibly aborting that event.
|
||||
/// <returns>true if the script was successfully stopped, false otherwise</returns>
|
||||
bool Stop(int timeout);
|
||||
|
||||
@@ -169,8 +175,31 @@ namespace OpenSim.Region.ScriptEngine.Interfaces
|
||||
object EventProcessor();
|
||||
|
||||
int EventTime();
|
||||
void ResetScript();
|
||||
|
||||
/// <summary>
|
||||
/// Reset the script.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This must not be called by a thread that is in the process of handling an event for this script. Otherwise
|
||||
/// there is a danger that it will self-abort and not complete the reset. Such a thread must call
|
||||
/// ApiResetScript() instead.
|
||||
/// </remarks>
|
||||
/// <param name='timeout'>
|
||||
/// How many milliseconds we will wait for an existing script event to finish before
|
||||
/// forcibly aborting that event prior to script reset.
|
||||
/// </param>
|
||||
void ResetScript(int timeout);
|
||||
|
||||
/// <summary>
|
||||
/// Reset the script.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This must not be called by any thread other than the one executing the scripts current event. This is
|
||||
/// because there is no wait or abort logic if another thread is in the middle of processing a script event.
|
||||
/// Such an external thread should use ResetScript() instead.
|
||||
/// </remarks>
|
||||
void ApiResetScript();
|
||||
|
||||
Dictionary<string, object> GetVars();
|
||||
void SetVars(Dictionary<string, object> vars);
|
||||
DetectParams GetDetectParams(int idx);
|
||||
|
||||
@@ -880,7 +880,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||
return (DateTime.Now - m_EventStart).Seconds;
|
||||
}
|
||||
|
||||
public void ResetScript()
|
||||
public void ResetScript(int timeout)
|
||||
{
|
||||
if (m_Script == null)
|
||||
return;
|
||||
@@ -890,7 +890,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
|
||||
RemoveState();
|
||||
ReleaseControls();
|
||||
|
||||
Stop(0);
|
||||
Stop(timeout);
|
||||
SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID);
|
||||
part.Inventory.GetInventoryItem(ItemID).PermsMask = 0;
|
||||
part.Inventory.GetInventoryItem(ItemID).PermsGranter = UUID.Zero;
|
||||
|
||||
@@ -1783,7 +1783,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||
{
|
||||
IScriptInstance instance = GetInstance(itemID);
|
||||
if (instance != null)
|
||||
instance.ResetScript();
|
||||
instance.ResetScript(m_WaitForEventCompletionOnScriptStop);
|
||||
}
|
||||
|
||||
public void StartScript(UUID itemID)
|
||||
|
||||
Reference in New Issue
Block a user