From 50803dfe2ca8818f438d740e788762e1faf1078c Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 15 Nov 2011 15:57:53 +0000
Subject: For clients that are entering a simulator from initial login, stop
executing FriendsModule.FetchFriendslist() asychronously.
Executing this asynchronously allows a race condition where subsequent friends fetches hit a cache that FetchFriendsList() had not yet populated.
Changing this to synchronous may improve issues where a user does not see friends as online even though they are.
I don't believe synchronous is a problem here, but if it is, then a more complicated signalling mechanism is required. Locking the cache isn't sufficient.
---
OpenSim/Region/Framework/Scenes/EventManager.cs | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index 96da2c3..bf9ad65 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -73,8 +73,10 @@ namespace OpenSim.Region.Framework.Scenes
///
public event OnNewClientDelegate OnNewClient;
- public delegate void OnClientLoginDelegate(IClientAPI client);
- public event OnClientLoginDelegate OnClientLogin;
+ ///
+ /// Fired if the client entering this sim is doing so as a new login
+ ///
+ public event Action OnClientLogin;
public delegate void OnNewPresenceDelegate(ScenePresence presence);
@@ -651,10 +653,10 @@ namespace OpenSim.Region.Framework.Scenes
public void TriggerOnClientLogin(IClientAPI client)
{
- OnClientLoginDelegate handlerClientLogin = OnClientLogin;
+ Action handlerClientLogin = OnClientLogin;
if (handlerClientLogin != null)
{
- foreach (OnClientLoginDelegate d in handlerClientLogin.GetInvocationList())
+ foreach (Action d in handlerClientLogin.GetInvocationList())
{
try
{
--
cgit v1.1
From 64784bc0cf194a3fae0168dd5f2d6fadc8a9235d Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 15 Nov 2011 17:30:58 +0000
Subject: remove SceneCommunicationService.OnAvatarCrossingIntoRegion. This
stuff is not being used any more - it's now IEntityTransferModule and
SimulationService instead
---
OpenSim/Region/Framework/Scenes/Scene.cs | 2 --
OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 5 -----
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 9 ++++++---
3 files changed, 6 insertions(+), 10 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index ce5b493..781f922 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3200,7 +3200,6 @@ namespace OpenSim.Region.Framework.Scenes
///
public void RegisterCommsEvents()
{
- m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing;
m_sceneGridService.OnCloseAgentConnection += IncomingCloseAgent;
//m_eventManager.OnRegionUp += OtherRegionUp;
//m_sceneGridService.OnChildAgentUpdate += IncomingChildAgentDataUpdate;
@@ -3218,7 +3217,6 @@ namespace OpenSim.Region.Framework.Scenes
//m_sceneGridService.OnRemoveKnownRegionFromAvatar -= HandleRemoveKnownRegionsFromAvatar;
//m_sceneGridService.OnChildAgentUpdate -= IncomingChildAgentDataUpdate;
//m_eventManager.OnRegionUp -= OtherRegionUp;
- m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing;
m_sceneGridService.OnCloseAgentConnection -= IncomingCloseAgent;
m_sceneGridService.OnGetLandData -= GetLandData;
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
index eccce89..ff45b1f 100644
--- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -61,11 +61,6 @@ namespace OpenSim.Region.Framework.Scenes
protected List m_agentsInTransit;
///
- /// An agent is crossing into this region
- ///
- public event AgentCrossing OnAvatarCrossingIntoRegion;
-
- ///
/// A user will arrive shortly, set up appropriate credentials so it can connect
///
// public event ExpectUserDelegate OnExpectUser;
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 098437a..189394e 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -859,9 +859,12 @@ namespace OpenSim.Region.Framework.Scenes
#region Status Methods
///
- /// This turns a child agent, into a root agent
- /// This is called when an agent teleports into a region, or if an
- /// agent crosses into this region from a neighbor over the border
+ /// Turns a child agent into a root agent.
+ ///
+ /// Child agents are logged into neighbouring sims largely to observe changes. Root agents exist when the
+ /// avatar is actual in the sim. They can perform all actions.
+ /// This change is made whenever an avatar enters a region, whether by crossing over from a neighbouring sim,
+ /// teleporting in or on initial login.
///
public void MakeRootAgent(Vector3 pos, bool isFlying)
{
--
cgit v1.1
From 20f26eeb17da708a58a26629e8e9b08a5e9a6950 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 15 Nov 2011 17:38:55 +0000
Subject: Remove unused RegionCommsListener/IRegionCommsListener.
All this is now being handled through IEntityTransferModule and SimulationService instead, and has been for some time.
---
OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 3 ---
1 file changed, 3 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
index ff45b1f..3d56f9b 100644
--- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -55,9 +55,6 @@ namespace OpenSim.Region.Framework.Scenes
protected RegionInfo m_regionInfo;
protected Scene m_scene;
-
- protected RegionCommsListener regionCommsHost;
-
protected List m_agentsInTransit;
///
--
cgit v1.1
From a3c5f76942270f17e359bfcf8f43c6db3d1f782d Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 15 Nov 2011 18:16:43 +0000
Subject: Removed unused and mostly commented out SceneCommunicationService
methods
As far as I can see, the SCS is only now used for informing neighbours of up/down status and possibly sending child agent updates and close requests
---
OpenSim/Region/Framework/Scenes/Scene.cs | 38 +---------
.../Framework/Scenes/SceneCommunicationService.cs | 81 +---------------------
2 files changed, 3 insertions(+), 116 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 781f922..fb4b545 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1121,8 +1121,8 @@ namespace OpenSim.Region.Framework.Scenes
m_sceneGraph.Close();
- // De-register with region communications (events cleanup)
- UnRegisterRegionWithComms();
+ if (!GridService.DeregisterRegion(m_regInfo.RegionID))
+ m_log.WarnFormat("[SCENE]: Deregister from grid failed for region {0}", m_regInfo.RegionName);
// call the base class Close method.
base.Close();
@@ -1623,8 +1623,6 @@ namespace OpenSim.Region.Framework.Scenes
/// Thrown if registration of the region itself fails.
public void RegisterRegionWithGrid()
{
- RegisterCommsEvents();
-
m_sceneGridService.SetScene(this);
GridRegion region = new GridRegion(RegionInfo);
@@ -3196,38 +3194,6 @@ namespace OpenSim.Region.Framework.Scenes
#region RegionComms
///
- /// Register the methods that should be invoked when this scene receives various incoming events
- ///
- public void RegisterCommsEvents()
- {
- m_sceneGridService.OnCloseAgentConnection += IncomingCloseAgent;
- //m_eventManager.OnRegionUp += OtherRegionUp;
- //m_sceneGridService.OnChildAgentUpdate += IncomingChildAgentDataUpdate;
- //m_sceneGridService.OnRemoveKnownRegionFromAvatar += HandleRemoveKnownRegionsFromAvatar;
- m_sceneGridService.OnLogOffUser += HandleLogOffUserFromGrid;
- m_sceneGridService.OnGetLandData += GetLandData;
- }
-
- ///
- /// Deregister this scene from receiving incoming region events
- ///
- public void UnRegisterRegionWithComms()
- {
- m_sceneGridService.OnLogOffUser -= HandleLogOffUserFromGrid;
- //m_sceneGridService.OnRemoveKnownRegionFromAvatar -= HandleRemoveKnownRegionsFromAvatar;
- //m_sceneGridService.OnChildAgentUpdate -= IncomingChildAgentDataUpdate;
- //m_eventManager.OnRegionUp -= OtherRegionUp;
- m_sceneGridService.OnCloseAgentConnection -= IncomingCloseAgent;
- m_sceneGridService.OnGetLandData -= GetLandData;
-
- // this does nothing; should be removed
- m_sceneGridService.Close();
-
- if (!GridService.DeregisterRegion(m_regInfo.RegionID))
- m_log.WarnFormat("[SCENE]: Deregister from grid failed for region {0}", m_regInfo.RegionName);
- }
-
- ///
/// Do the work necessary to initiate a new user connection for a particular scene.
/// At the moment, this consists of setting up the caps infrastructure
/// The return bool should allow for connections to be refused, but as not all calling paths
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
index 3d56f9b..0e22156 100644
--- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -55,57 +55,6 @@ namespace OpenSim.Region.Framework.Scenes
protected RegionInfo m_regionInfo;
protected Scene m_scene;
- protected List m_agentsInTransit;
-
- ///
- /// A user will arrive shortly, set up appropriate credentials so it can connect
- ///
-// public event ExpectUserDelegate OnExpectUser;
-
- ///
- /// A Prim will arrive shortly
- ///
- public event CloseAgentConnection OnCloseAgentConnection;
-
- ///
- /// A new prim has arrived
- ///
-// public event PrimCrossing OnPrimCrossingIntoRegion;
-
- /////
- ///// A New Region is up and available
- /////
- //public event RegionUp OnRegionUp;
-
- ///
- /// We have a child agent for this avatar and we're getting a status update about it
- ///
-// public event ChildAgentUpdate OnChildAgentUpdate;
- //public event RemoveKnownRegionsFromAvatarList OnRemoveKnownRegionFromAvatar;
-
- ///
- /// Time to log one of our users off. Grid Service sends this mostly
- ///
- public event LogOffUser OnLogOffUser;
-
- ///
- /// A region wants land data from us!
- ///
- public event GetLandData OnGetLandData;
-
-// private AgentCrossing handlerAvatarCrossingIntoRegion = null; // OnAvatarCrossingIntoRegion;
-// private ExpectUserDelegate handlerExpectUser = null; // OnExpectUser;
-// private CloseAgentConnection handlerCloseAgentConnection = null; // OnCloseAgentConnection;
-// private PrimCrossing handlerPrimCrossingIntoRegion = null; // OnPrimCrossingIntoRegion;
- //private RegionUp handlerRegionUp = null; // OnRegionUp;
-// private ChildAgentUpdate handlerChildAgentUpdate = null; // OnChildAgentUpdate;
- //private RemoveKnownRegionsFromAvatarList handlerRemoveKnownRegionFromAvatar = null; // OnRemoveKnownRegionFromAvatar;
-// private LogOffUser handlerLogOffUser = null;
-// private GetLandData handlerGetLandData = null; // OnGetLandData
-
- public SceneCommunicationService()
- {
- }
public void SetScene(Scene s)
{
@@ -113,23 +62,6 @@ namespace OpenSim.Region.Framework.Scenes
m_regionInfo = s.RegionInfo;
}
- ///
- /// Register a region with the grid
- ///
- ///
- /// Thrown if region registration fails.
- public void RegisterRegion(IInterregionCommsOut comms_out, RegionInfo regionInfos)
- {
- }
-
- ///
- /// This region is shutting down, de-register all events!
- /// De-Register region from Grid!
- ///
- public void Close()
- {
- }
-
public delegate void InformNeighbourThatRegionUpDelegate(INeighbourService nService, RegionInfo region, ulong regionhandle);
private void InformNeighborsThatRegionisUpCompleted(IAsyncResult iar)
@@ -165,7 +97,6 @@ namespace OpenSim.Region.Framework.Scenes
}
}
-
public void InformNeighborsThatRegionisUp(INeighbourService neighbourService, RegionInfo region)
{
//m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName);
@@ -182,7 +113,6 @@ namespace OpenSim.Region.Framework.Scenes
}
public delegate void SendChildAgentDataUpdateDelegate(AgentPosition cAgentData, UUID scopeID, GridRegion dest);
-
///
/// This informs all neighboring regions about the settings of it's child agent.
@@ -247,19 +177,11 @@ namespace OpenSim.Region.Framework.Scenes
}
- //public delegate void SendCloseChildAgentDelegate(UUID agentID, ulong regionHandle);
- //private void SendCloseChildAgentCompleted(IAsyncResult iar)
- //{
- // SendCloseChildAgentDelegate icon = (SendCloseChildAgentDelegate)iar.AsyncState;
- // icon.EndInvoke(iar);
- //}
-
///
/// Closes a child agent on a given region
///
protected void SendCloseChildAgent(UUID agentID, ulong regionHandle)
{
-
m_log.Debug("[INTERGRID]: Sending close agent to " + regionHandle);
// let's do our best, but there's not much we can do if the neighbour doesn't accept.
@@ -291,6 +213,5 @@ namespace OpenSim.Region.Framework.Scenes
{
return m_scene.GridService.GetRegionsByName(UUID.Zero, name, maxNumber);
}
-
}
-}
+}
\ No newline at end of file
--
cgit v1.1
From 828e4a5b093c6a67302776137fc0bdbcfded4c9b Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 15 Nov 2011 20:26:42 +0000
Subject: Add comments about trying to avoid synchronous work off the
EventManager.OnMakeRootAgent event since this is on the critical path for
transfer of avatars from one region to another.
---
OpenSim/Region/Framework/Scenes/EventManager.cs | 13 +++++++++----
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 3 +++
2 files changed, 12 insertions(+), 4 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs
index bf9ad65..4906665 100644
--- a/OpenSim/Region/Framework/Scenes/EventManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EventManager.cs
@@ -212,10 +212,15 @@ namespace OpenSim.Region.Framework.Scenes
public delegate void OnMakeChildAgentDelegate(ScenePresence presence);
public event OnMakeChildAgentDelegate OnMakeChildAgent;
- public delegate void OnMakeRootAgentDelegate(ScenePresence presence);
public delegate void OnSaveNewWindlightProfileDelegate();
public delegate void OnSendNewWindlightProfileTargetedDelegate(RegionLightShareData wl, UUID user);
- public event OnMakeRootAgentDelegate OnMakeRootAgent;
+
+ ///
+ /// This event is on the critical path for transferring an avatar from one region to another. Try and do
+ /// as little work on this event as possible, or do work asynchronously.
+ ///
+ public event Action OnMakeRootAgent;
+
public event OnSendNewWindlightProfileTargetedDelegate OnSendNewWindlightProfileTargeted;
public event OnSaveNewWindlightProfileDelegate OnSaveNewWindlightProfile;
@@ -1322,10 +1327,10 @@ namespace OpenSim.Region.Framework.Scenes
public void TriggerOnMakeRootAgent(ScenePresence presence)
{
- OnMakeRootAgentDelegate handlerMakeRootAgent = OnMakeRootAgent;
+ Action handlerMakeRootAgent = OnMakeRootAgent;
if (handlerMakeRootAgent != null)
{
- foreach (OnMakeRootAgentDelegate d in handlerMakeRootAgent.GetInvocationList())
+ foreach (Action d in handlerMakeRootAgent.GetInvocationList())
{
try
{
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 189394e..5587073 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -865,6 +865,9 @@ namespace OpenSim.Region.Framework.Scenes
/// avatar is actual in the sim. They can perform all actions.
/// This change is made whenever an avatar enters a region, whether by crossing over from a neighbouring sim,
/// teleporting in or on initial login.
+ ///
+ /// This method is on the critical path for transferring an avatar from one region to another. Delay here
+ /// delays that crossing.
///
public void MakeRootAgent(Vector3 pos, bool isFlying)
{
--
cgit v1.1
From 31ffd5450bab751f4df396b7d099367246b2f552 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 15 Nov 2011 23:34:28 +0000
Subject: Make tracked per scene thread names conform to the majorirty format.
This is ()
---
OpenSim/Region/Framework/Scenes/Scene.cs | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index fb4b545..c1cbbd4 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1145,7 +1145,9 @@ namespace OpenSim.Region.Framework.Scenes
}
m_lastUpdate = Util.EnvironmentTickCount();
- HeartbeatThread = Watchdog.StartThread(Heartbeat, "Heartbeat for region " + RegionInfo.RegionName, ThreadPriority.Normal, false);
+ HeartbeatThread
+ = Watchdog.StartThread(
+ Heartbeat, string.Format("Heartbeat ({0})", RegionInfo.RegionName), ThreadPriority.Normal, false);
}
///
--
cgit v1.1
From baa65d4a15c0907434bb26f2ac85ad881dd3c3ca Mon Sep 17 00:00:00 2001
From: Dan Lake
Date: Tue, 15 Nov 2011 17:09:17 -0800
Subject: In AddNewClient, iterator over copy of entities rather than copying
under read lock
---
OpenSim/Region/Framework/Scenes/Scene.cs | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index c1cbbd4..f10789b 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -2544,11 +2544,12 @@ namespace OpenSim.Region.Framework.Scenes
// Send all scene object to the new client
Util.FireAndForget(delegate
{
- Entities.ForEach(delegate(EntityBase e)
+ EntityBase[] entities = Entities.GetEntities();
+ foreach(EntityBase e in entities)
{
if (e != null && e is SceneObjectGroup)
((SceneObjectGroup)e).SendFullUpdateToClient(client);
- });
+ }
});
}
--
cgit v1.1
From bd01c4a5cb40a2df02e9a3a9aee3db0829795f05 Mon Sep 17 00:00:00 2001
From: Dan Lake
Date: Wed, 16 Nov 2011 02:33:56 -0800
Subject: Call public ForEach instead of using m_entities directly. No semantic
changes, just cleanup
---
OpenSim/Region/Framework/Scenes/EntityManager.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/EntityManager.cs b/OpenSim/Region/Framework/Scenes/EntityManager.cs
index 1812bd2..b788a3c 100644
--- a/OpenSim/Region/Framework/Scenes/EntityManager.cs
+++ b/OpenSim/Region/Framework/Scenes/EntityManager.cs
@@ -79,7 +79,7 @@ namespace OpenSim.Region.Framework.Scenes
{
List tmp = new List();
- m_entities.ForEach(
+ ForEach(
delegate(EntityBase entity)
{
if (entity is T)
@@ -93,7 +93,7 @@ namespace OpenSim.Region.Framework.Scenes
public EntityBase[] GetEntities()
{
List tmp = new List(m_entities.Count);
- m_entities.ForEach(delegate(EntityBase entity) { tmp.Add(entity); });
+ ForEach(delegate(EntityBase entity) { tmp.Add(entity); });
return tmp.ToArray();
}
--
cgit v1.1
From b6d83e9c0f4bd1d450e36270278285be50d5ace8 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Wed, 16 Nov 2011 23:01:59 +0000
Subject: Stop OdePrim and OdeCharacter insanely overriding set LocalID to set
their own private m_localID property but leaving get to return the then unset
PhysicsActor.LocalId!
Instead, just have both subclasses use the PhysicsActor.LocalID property.
This restores collision functionality that fell away in 45c7789 yesterday
---
OpenSim/Region/Framework/Scenes/EntityBase.cs | 6 +++++-
OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 6 +++++-
OpenSim/Region/Framework/Scenes/ScenePresence.cs | 2 +-
3 files changed, 11 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region/Framework/Scenes')
diff --git a/OpenSim/Region/Framework/Scenes/EntityBase.cs b/OpenSim/Region/Framework/Scenes/EntityBase.cs
index 664be01..741f53b 100644
--- a/OpenSim/Region/Framework/Scenes/EntityBase.cs
+++ b/OpenSim/Region/Framework/Scenes/EntityBase.cs
@@ -103,7 +103,11 @@ namespace OpenSim.Region.Framework.Scenes
public virtual uint LocalId
{
get { return m_localId; }
- set { m_localId = value; }
+ set
+ {
+ m_localId = value;
+// m_log.DebugFormat("[ENTITY BASE]: Set part {0} to local id {1}", Name, m_localId);
+ }
}
///
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index f693b36..4e79311 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -517,7 +517,11 @@ namespace OpenSim.Region.Framework.Scenes
public uint LocalId
{
get { return m_localId; }
- set { m_localId = value; }
+ set
+ {
+ m_localId = value;
+// m_log.DebugFormat("[SCENE OBJECT PART]: Set part {0} to local id {1}", Name, m_localId);
+ }
}
public virtual string Name
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 5587073..7d901c9 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -756,7 +756,7 @@ namespace OpenSim.Region.Framework.Scenes
m_name = String.Format("{0} {1}", Firstname, Lastname);
m_scene = world;
m_uuid = client.AgentId;
- m_localId = m_scene.AllocateLocalId();
+ LocalId = m_scene.AllocateLocalId();
UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, m_uuid);
if (account != null)
--
cgit v1.1