Rewrote parts of the code that were double-locking different objects. This is about half of the code base reviewed.

This commit is contained in:
Diva Canto
2009-10-06 15:39:53 -07:00
parent 99c85b5ef5
commit e992ca0255
9 changed files with 211 additions and 176 deletions

View File

@@ -111,16 +111,17 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
private Scene FindClientScene(UUID agentId)
{
List<Scene> scenes = null;
lock (m_Scenelist)
scenes = new List<Scene>(m_Scenelist);
foreach (Scene scene in scenes)
{
foreach (Scene scene in m_Scenelist)
ScenePresence presence = scene.GetScenePresence(agentId);
if (presence != null)
{
ScenePresence presence = scene.GetScenePresence(agentId);
if (presence != null)
{
if (!presence.IsChildAgent)
return scene;
}
if (!presence.IsChildAgent)
return scene;
}
}
return null;