Added lock(m_syncRoot) in handling NewAvatar messages, so that adding/removing
from RemoveAvatars list are serialized.dsg
parent
ee7b965bf9
commit
fd99eea0af
|
@ -352,7 +352,14 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
}
|
||||
|
||||
RegionSyncAvatar av = new RegionSyncAvatar(m_scene, agentID, first, last, startPos);
|
||||
m_remoteAvatars.Add(agentID, av);
|
||||
lock (m_syncRoot)
|
||||
{
|
||||
Dictionary<UUID, RegionSyncAvatar> newremotes = new Dictionary<UUID, RegionSyncAvatar>(RemoteAvatars);
|
||||
// Add to list of remote avatars
|
||||
newremotes.Add(agentID, av);
|
||||
m_remoteAvatars = newremotes;
|
||||
|
||||
//m_remoteAvatars.Add(agentID, av);
|
||||
//m_scene.AddNewClient(av);
|
||||
m_scene.AddNewClient2(av, true, false);
|
||||
m_scene.TryGetScenePresence(agentID, out sp);
|
||||
|
@ -364,6 +371,7 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule
|
|||
{
|
||||
sp.IsSyncedAvatar = true;
|
||||
}
|
||||
}
|
||||
//RegionSyncMessage.HandlerDebug(LogHeader(), msg, String.Format("Added new remote avatar \"{0}\" ({1})", first + " " + last, agentID));
|
||||
RegionSyncMessage.HandleSuccess(LogHeader(), msg, String.Format("Added new remote avatar \"{0}\" ({1})", first + " " + last, agentID));
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue