One more stab at http://opensimulator.org/mantis/view.php?id=4858.
Eliminated the nested locks of m_Scripts and m_PrimObjects.prebuild-update
parent
cd2bb7daf3
commit
5c0c7fda6c
|
@ -820,18 +820,20 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||||
m_CompileDict.Remove(itemID);
|
m_CompileDict.Remove(itemID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IScriptInstance instance = null;
|
||||||
|
|
||||||
lock (m_Scripts)
|
lock (m_Scripts)
|
||||||
{
|
{
|
||||||
// Do we even have it?
|
// Do we even have it?
|
||||||
if (!m_Scripts.ContainsKey(itemID))
|
if (!m_Scripts.ContainsKey(itemID))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
IScriptInstance instance=m_Scripts[itemID];
|
instance=m_Scripts[itemID];
|
||||||
m_Scripts.Remove(itemID);
|
m_Scripts.Remove(itemID);
|
||||||
|
}
|
||||||
|
|
||||||
instance.ClearQueue();
|
instance.ClearQueue();
|
||||||
instance.Stop(0);
|
instance.Stop(0);
|
||||||
|
|
||||||
// bool objectRemoved = false;
|
// bool objectRemoved = false;
|
||||||
|
|
||||||
lock (m_PrimObjects)
|
lock (m_PrimObjects)
|
||||||
|
@ -871,8 +873,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||||
handlerObjectRemoved(part.UUID);
|
handlerObjectRemoved(part.UUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
CleanAssemblies();
|
|
||||||
}
|
|
||||||
|
|
||||||
ScriptRemoved handlerScriptRemoved = OnScriptRemoved;
|
ScriptRemoved handlerScriptRemoved = OnScriptRemoved;
|
||||||
if (handlerScriptRemoved != null)
|
if (handlerScriptRemoved != null)
|
||||||
|
|
Loading…
Reference in New Issue