diff options
author | Justin Clark-Casey (justincc) | 2012-12-17 21:37:02 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-12-17 21:37:02 +0000 |
commit | e6fd8365af0b0dc7a4664278c369752cb4e87155 (patch) | |
tree | 194233d93d9518ffc3ee1419e7ed6859cba72d77 /OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | |
parent | BulletSim: fix vehicles being shot in the air at border crossings because of ... (diff) | |
download | opensim-SC-e6fd8365af0b0dc7a4664278c369752cb4e87155.zip opensim-SC-e6fd8365af0b0dc7a4664278c369752cb4e87155.tar.gz opensim-SC-e6fd8365af0b0dc7a4664278c369752cb4e87155.tar.bz2 opensim-SC-e6fd8365af0b0dc7a4664278c369752cb4e87155.tar.xz |
Extend default 1 second wait for event completion to other thread script reset (as called by llResetOtherScript()).
As with script stop (via llDie()) aborting other scripts event threads, llResetOtherScript() can also abort any current event thread on another script.
On mono 2.6, 2.10 and possibly later this may cause locking problems in certain code areas.
This commit reuses the recently introduced [XEngine] WaitForEventCompletionOnScriptStop to make this a 1 sec timeout, rather than 0 secs.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs index dfe8386..01a5e34 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs | |||
@@ -877,7 +877,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
877 | return (DateTime.Now - m_EventStart).Seconds; | 877 | return (DateTime.Now - m_EventStart).Seconds; |
878 | } | 878 | } |
879 | 879 | ||
880 | public void ResetScript() | 880 | public void ResetScript(int timeout) |
881 | { | 881 | { |
882 | if (m_Script == null) | 882 | if (m_Script == null) |
883 | return; | 883 | return; |
@@ -887,7 +887,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance | |||
887 | RemoveState(); | 887 | RemoveState(); |
888 | ReleaseControls(); | 888 | ReleaseControls(); |
889 | 889 | ||
890 | Stop(0); | 890 | Stop(timeout); |
891 | SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID); | 891 | SceneObjectPart part = Engine.World.GetSceneObjectPart(LocalID); |
892 | part.Inventory.GetInventoryItem(ItemID).PermsMask = 0; | 892 | part.Inventory.GetInventoryItem(ItemID).PermsMask = 0; |
893 | part.Inventory.GetInventoryItem(ItemID).PermsGranter = UUID.Zero; | 893 | part.Inventory.GetInventoryItem(ItemID).PermsGranter = UUID.Zero; |