aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2012-02-25 12:25:16 +0100
committerMelanie2012-02-25 12:25:16 +0100
commit5eb1679367754d530edb4c50d432847ed1a027af (patch)
tree7fb472108b607edffbb07262ff044c7aa05aef50 /OpenSim
parentMerge branch 'ubitwork' (diff)
downloadopensim-SC_OLD-5eb1679367754d530edb4c50d432847ed1a027af.zip
opensim-SC_OLD-5eb1679367754d530edb4c50d432847ed1a027af.tar.gz
opensim-SC_OLD-5eb1679367754d530edb4c50d432847ed1a027af.tar.bz2
opensim-SC_OLD-5eb1679367754d530edb4c50d432847ed1a027af.tar.xz
Delay the sending of the initial werables update until the inventory and
VFS in the viewer are ready. We're much faster than SL and that exposes this race condition. Also reinstate the extra avatar data send on login
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs17
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs3
2 files changed, 12 insertions, 8 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
index b0cee03..93e22e0 100644
--- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs
@@ -551,12 +551,17 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory
551 /// <param name="client"></param> 551 /// <param name="client"></param>
552 private void Client_OnRequestWearables(IClientAPI client) 552 private void Client_OnRequestWearables(IClientAPI client)
553 { 553 {
554 // m_log.DebugFormat("[AVFACTORY]: Client_OnRequestWearables called for {0} ({1})", client.Name, client.AgentId); 554 Util.FireAndForget(delegate(object x)
555 ScenePresence sp = m_scene.GetScenePresence(client.AgentId); 555 {
556 if (sp != null) 556 Thread.Sleep(2000);
557 client.SendWearables(sp.Appearance.Wearables, sp.Appearance.Serial++); 557
558 else 558 // m_log.DebugFormat("[AVFACTORY]: Client_OnRequestWearables called for {0} ({1})", client.Name, client.AgentId);
559 m_log.WarnFormat("[AVFACTORY]: Client_OnRequestWearables unable to find presence for {0}", client.AgentId); 559 ScenePresence sp = m_scene.GetScenePresence(client.AgentId);
560 if (sp != null)
561 client.SendWearables(sp.Appearance.Wearables, sp.Appearance.Serial++);
562 else
563 m_log.WarnFormat("[AVFACTORY]: Client_OnRequestWearables unable to find presence for {0}", client.AgentId);
564 });
560 } 565 }
561 566
562 /// <summary> 567 /// <summary>
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 01053bf..26fa6c0 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1000,8 +1000,7 @@ namespace OpenSim.Region.Framework.Scenes
1000 } 1000 }
1001 } 1001 }
1002 1002
1003 if (wasChild) 1003 SendAvatarDataToAllAgents();
1004 SendAvatarDataToAllAgents();
1005 1004
1006 // send the animations of the other presences to me 1005 // send the animations of the other presences to me
1007 m_scene.ForEachRootScenePresence(delegate(ScenePresence presence) 1006 m_scene.ForEachRootScenePresence(delegate(ScenePresence presence)