From 4dfd2c7d478c5257b8cecc4c9fb4eaf72e190dbf Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Mon, 12 Dec 2011 19:31:50 +0000 Subject: minor: remove pointless comment from OdeScene.cs --- OpenSim/Region/Physics/OdePlugin/OdeScene.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs index 5b28e7c..c1a3e61 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs @@ -391,11 +391,10 @@ namespace OpenSim.Region.Physics.OdePlugin space = d.HashSpaceCreate(IntPtr.Zero); contactgroup = d.JointGroupCreate(0); - //contactgroup d.WorldSetAutoDisableFlag(world, false); + #if USE_DRAWSTUFF - Thread viewthread = new Thread(new ParameterizedThreadStart(startvisualization)); viewthread.Start(); #endif -- cgit v1.1 From b242ceda1e7599a8e71150f3fcc9f27a64d18828 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Tue, 13 Dec 2011 20:42:39 +0000 Subject: In AvatarFactoryModule.SetApperance(), perform ValidateBakedTextureCache() in the same thread rather than on another one. The caller is already an async thread from LLClientView so this doesn't hold up the client. However, launching on a separate thread does remove the effect of m_setAppearanceLock This was potentially allowing two different SetAppearance threads to interfere with each other, though this probably rarely happens, if at all. --- OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 6 ++++-- .../Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 7223438..9c86c74 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs @@ -575,8 +575,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// /// Add a handler for the given packet type. /// - /// The packet is handled on its own thread. If packets must be handled in the order in which thye - /// are received then please us ethe synchronous version of this method. + /// + /// The packet is handled on its own thread. If packets must be handled in the order in which thye + /// are received then please use the synchronous version of this method. + /// /// /// /// true if the handler was added. This is currently always the case. diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index f06fb14..29e3580 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs @@ -150,13 +150,13 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory changed = sp.Appearance.SetTextureEntries(textureEntry) || changed; m_log.InfoFormat("[AVFACTORY]: received texture update for {0}", sp.UUID); - Util.FireAndForget(delegate(object o) { ValidateBakedTextureCache(sp, false); }); + ValidateBakedTextureCache(sp, false); // This appears to be set only in the final stage of the appearance // update transaction. In theory, we should be able to do an immediate // appearance send and save here. - } + // save only if there were changes, send no matter what (doesn't hurt to send twice) if (changed) QueueAppearanceSave(sp.ControllingClient.AgentId); -- cgit v1.1 From 39736e52d87d9e04092262c1a41e3c434f087e36 Mon Sep 17 00:00:00 2001 From: Dan Lake Date: Tue, 13 Dec 2011 21:37:17 -0800 Subject: Reorder clearing of upate schedule on SOP to before sending updates. Fix potential race condition. --- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'OpenSim') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index c8b39a4..f5a00d7 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -259,8 +259,6 @@ namespace OpenSim.Region.Framework.Scenes private bool m_passTouches; - private UpdateRequired m_updateFlag; - private PhysicsActor m_physActor; protected Vector3 m_acceleration; protected Vector3 m_angularVelocity; @@ -1004,11 +1002,7 @@ namespace OpenSim.Region.Framework.Scenes } } - public UpdateRequired UpdateFlag - { - get { return m_updateFlag; } - set { m_updateFlag = value; } - } + public UpdateRequired UpdateFlag { get; set; } /// /// Used for media on a prim. @@ -2949,6 +2943,7 @@ namespace OpenSim.Region.Framework.Scenes { case UpdateRequired.TERSE: { + ClearUpdateSchedule(); // Throw away duplicate or insignificant updates if (!RotationOffset.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) || !Acceleration.Equals(m_lastAcceleration) || @@ -2958,9 +2953,7 @@ namespace OpenSim.Region.Framework.Scenes !OffsetPosition.ApproxEquals(m_lastPosition, POSITION_TOLERANCE) || Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE) { - SendTerseUpdateToAllClients(); - ClearUpdateSchedule(); // Update the "last" values m_lastPosition = OffsetPosition; @@ -2974,12 +2967,11 @@ namespace OpenSim.Region.Framework.Scenes } case UpdateRequired.FULL: { + ClearUpdateSchedule(); SendFullUpdateToAllClients(); break; } } - - ClearUpdateSchedule(); } /// -- cgit v1.1 From f43e5f92fd207fd6b24d5635eadce84acd66de1e Mon Sep 17 00:00:00 2001 From: Dan Lake Date: Tue, 13 Dec 2011 23:34:59 -0800 Subject: Just adding a comment to SendFullUpdatToClient --- OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 9587d5f..f9e0b83 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -1373,6 +1373,8 @@ namespace OpenSim.Region.Framework.Scenes #endregion + // Send the parts of this SOG to a single client + // Used when the client initially connects and when client sends RequestPrim packet public void SendFullUpdateToClient(IClientAPI remoteClient) { RootPart.SendFullUpdate( -- cgit v1.1