From f831a1778baa766b4810e352f3ae2ab6736e4620 Mon Sep 17 00:00:00 2001 From: Melanie Date: Wed, 2 Jun 2010 19:57:03 +0100 Subject: [PATCH] Next OSG test. Don't remove app domains if they contain running threads. --- OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 98e77c0b92..46d674d869 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs @@ -277,7 +277,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine // Clear the event queue and abort the instance thread // instance.ClearQueue(); - instance.Stop(0); + bool stopped = instance.Stop(0); // Release events, timer, etc // @@ -287,7 +287,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine // Must be done explicitly because they have infinite // lifetime // - m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); + if (stopped) + m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); if (m_DomainScripts[instance.AppDomain].Count == 0) { m_DomainScripts.Remove(instance.AppDomain); @@ -804,7 +805,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine m_Scripts.Remove(itemID); instance.ClearQueue(); - instance.Stop(0); + bool stopped = instance.Stop(0); // bool objectRemoved = false; @@ -829,7 +830,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine instance.RemoveState(); instance.DestroyScriptInstance(); - m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); + if (stopped) + m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); if (m_DomainScripts[instance.AppDomain].Count == 0) { m_DomainScripts.Remove(instance.AppDomain);