Another stab at cmickeyb's patch for script GC.

Moved the Close() for the appdomain-hosted parts into a new destructor
on ScriptInstance.
This commit is contained in:
Melanie
2009-08-07 20:43:23 +01:00
parent 2148f84e1e
commit 4ee8d8a813
11 changed files with 69 additions and 68 deletions
@@ -272,6 +272,10 @@ 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
@@ -282,10 +286,6 @@ 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,6 +802,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine
}
}
instance.RemoveState();
instance.DestroyScriptInstance();
m_DomainScripts[instance.AppDomain].Remove(instance.ItemID);
if (m_DomainScripts[instance.AppDomain].Count == 0)
{
@@ -809,9 +812,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
UnloadAppDomain(instance.AppDomain);
}
instance.RemoveState();
instance.DestroyScriptInstance();
instance = null;
ObjectRemoved handlerObjectRemoved = OnObjectRemoved;