From f8d8366bfa6f048107d22b4b73af22803810be81 Mon Sep 17 00:00:00 2001 From: Melanie Date: Fri, 7 Aug 2009 03:04:06 +0100 Subject: Revert the XEngine memleak patch, it causes premature GC. This matches behavior seen with an earlier attempt to do this, apparently the sponsor mechanism does't work in Mono --- OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'OpenSim/Region/ScriptEngine/XEngine') diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index ff75e2f..c7673c7 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs @@ -272,10 +272,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine instance.ClearQueue(); instance.Stop(0); - // Release events, timer, etc - // - instance.DestroyScriptInstance(); - // Unload scripts and app domains // Must be done explicitly because they have infinite // lifetime @@ -286,6 +282,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine m_DomainScripts.Remove(instance.AppDomain); UnloadAppDomain(instance.AppDomain); } + + // Release events, timer, etc + // + instance.DestroyScriptInstance(); } m_Scripts.Clear(); m_PrimObjects.Clear(); @@ -802,9 +802,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine } } - instance.RemoveState(); - instance.DestroyScriptInstance(); - m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); if (m_DomainScripts[instance.AppDomain].Count == 0) { @@ -812,6 +809,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine UnloadAppDomain(instance.AppDomain); } + instance.RemoveState(); + instance.DestroyScriptInstance(); + instance = null; ObjectRemoved handlerObjectRemoved = OnObjectRemoved; -- cgit v1.1