diff options
author | Melanie | 2009-08-07 20:43:23 +0100 |
---|---|---|
committer | Melanie | 2009-08-07 20:43:23 +0100 |
commit | 4ee8d8a813f6ee164fb361fbf6c26384b668bd1a (patch) | |
tree | 73d8679ede11b3dcc13239f149d8e385e0431b15 /OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |
parent | Temporailiy add some info output in config load (diff) | |
download | opensim-SC_OLD-4ee8d8a813f6ee164fb361fbf6c26384b668bd1a.zip opensim-SC_OLD-4ee8d8a813f6ee164fb361fbf6c26384b668bd1a.tar.gz opensim-SC_OLD-4ee8d8a813f6ee164fb361fbf6c26384b668bd1a.tar.bz2 opensim-SC_OLD-4ee8d8a813f6ee164fb361fbf6c26384b668bd1a.tar.xz |
Another stab at cmickeyb's patch for script GC.
Moved the Close() for the appdomain-hosted parts into a new destructor
on ScriptInstance.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/XEngine/XEngine.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index c7673c7..ff75e2f 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -272,6 +272,10 @@ 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 | |||
275 | // Unload scripts and app domains | 279 | // Unload scripts and app domains |
276 | // Must be done explicitly because they have infinite | 280 | // Must be done explicitly because they have infinite |
277 | // lifetime | 281 | // lifetime |
@@ -282,10 +286,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
282 | m_DomainScripts.Remove(instance.AppDomain); | 286 | m_DomainScripts.Remove(instance.AppDomain); |
283 | UnloadAppDomain(instance.AppDomain); | 287 | UnloadAppDomain(instance.AppDomain); |
284 | } | 288 | } |
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,6 +802,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
802 | } | 802 | } |
803 | } | 803 | } |
804 | 804 | ||
805 | instance.RemoveState(); | ||
806 | instance.DestroyScriptInstance(); | ||
807 | |||
805 | m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); | 808 | m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); |
806 | if (m_DomainScripts[instance.AppDomain].Count == 0) | 809 | if (m_DomainScripts[instance.AppDomain].Count == 0) |
807 | { | 810 | { |
@@ -809,9 +812,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
809 | UnloadAppDomain(instance.AppDomain); | 812 | UnloadAppDomain(instance.AppDomain); |
810 | } | 813 | } |
811 | 814 | ||
812 | instance.RemoveState(); | ||
813 | instance.DestroyScriptInstance(); | ||
814 | |||
815 | instance = null; | 815 | instance = null; |
816 | 816 | ||
817 | ObjectRemoved handlerObjectRemoved = OnObjectRemoved; | 817 | ObjectRemoved handlerObjectRemoved = OnObjectRemoved; |