aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
diff options
context:
space:
mode:
authorMelanie2009-08-07 03:04:06 +0100
committerMelanie2009-08-07 03:04:06 +0100
commitf8d8366bfa6f048107d22b4b73af22803810be81 (patch)
tree185a7ccc461a03366e1dade1a6f4ecf5d2c8f4f4 /OpenSim/Region/ScriptEngine/XEngine/XEngine.cs
parentRemove the forge module patch insertion area from prebuild.xml (diff)
downloadopensim-SC_OLD-f8d8366bfa6f048107d22b4b73af22803810be81.zip
opensim-SC_OLD-f8d8366bfa6f048107d22b4b73af22803810be81.tar.gz
opensim-SC_OLD-f8d8366bfa6f048107d22b4b73af22803810be81.tar.bz2
opensim-SC_OLD-f8d8366bfa6f048107d22b4b73af22803810be81.tar.xz
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
Diffstat (limited to 'OpenSim/Region/ScriptEngine/XEngine/XEngine.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/XEngine/XEngine.cs14
1 files changed, 7 insertions, 7 deletions
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
272 instance.ClearQueue(); 272 instance.ClearQueue();
273 instance.Stop(0); 273 instance.Stop(0);
274 274
275 // Release events, timer, etc
276 //
277 instance.DestroyScriptInstance();
278
279 // Unload scripts and app domains 275 // Unload scripts and app domains
280 // Must be done explicitly because they have infinite 276 // Must be done explicitly because they have infinite
281 // lifetime 277 // lifetime
@@ -286,6 +282,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine
286 m_DomainScripts.Remove(instance.AppDomain); 282 m_DomainScripts.Remove(instance.AppDomain);
287 UnloadAppDomain(instance.AppDomain); 283 UnloadAppDomain(instance.AppDomain);
288 } 284 }
285
286 // Release events, timer, etc
287 //
288 instance.DestroyScriptInstance();
289 } 289 }
290 m_Scripts.Clear(); 290 m_Scripts.Clear();
291 m_PrimObjects.Clear(); 291 m_PrimObjects.Clear();
@@ -802,9 +802,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
802 } 802 }
803 } 803 }
804 804
805 instance.RemoveState();
806 instance.DestroyScriptInstance();
807
808 m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); 805 m_DomainScripts[instance.AppDomain].Remove(instance.ItemID);
809 if (m_DomainScripts[instance.AppDomain].Count == 0) 806 if (m_DomainScripts[instance.AppDomain].Count == 0)
810 { 807 {
@@ -812,6 +809,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine
812 UnloadAppDomain(instance.AppDomain); 809 UnloadAppDomain(instance.AppDomain);
813 } 810 }
814 811
812 instance.RemoveState();
813 instance.DestroyScriptInstance();
814
815 instance = null; 815 instance = null;
816 816
817 ObjectRemoved handlerObjectRemoved = OnObjectRemoved; 817 ObjectRemoved handlerObjectRemoved = OnObjectRemoved;