From 5fd17491509fb4b939666cdc37951e213f054242 Mon Sep 17 00:00:00 2001 From: Dan Lake Date: Fri, 11 Nov 2011 17:16:52 -0800 Subject: Remove SceneViewer from ScenePresence to reduce quadruple queueing of prim update to only triple queuing. Existing method was: 1. Schedule prim for update, adding to scene update list 2. Update on SOGs during heartbeat queues update onto each SceneViewer 3. Update on SPs during heartbeat queues update onto each IClientAPI 4. ProcessEntityUpdates queues updates into UDP send stack Now the SceneViewer has been eliminated so updates are scheduled at any time and then put onto the IClientAPI priority queues immediately during SceneGraph.UpdateObjectGroups. --- OpenSim/Region/Framework/Scenes/Scene.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs') diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 3b90c16..ce5b493 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -2540,6 +2540,16 @@ namespace OpenSim.Region.Framework.Scenes if (vialogin) EventManager.TriggerOnClientLogin(client); } + + // Send all scene object to the new client + Util.FireAndForget(delegate + { + Entities.ForEach(delegate(EntityBase e) + { + if (e != null && e is SceneObjectGroup) + ((SceneObjectGroup)e).SendFullUpdateToClient(client); + }); + }); } /// -- cgit v1.1