aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-12-17 21:37:02 +0000
committerJustin Clark-Casey (justincc)2012-12-17 21:37:02 +0000
commite6fd8365af0b0dc7a4664278c369752cb4e87155 (patch)
tree194233d93d9518ffc3ee1419e7ed6859cba72d77 /OpenSim/Region/ScriptEngine/Shared/Instance/ScriptInstance.cs
parentBulletSim: fix vehicles being shot in the air at border crossings because of ... (diff)
downloadopensim-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.cs4
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;