aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/UserAccountCache.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs24
4 files changed, 24 insertions, 15 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/UserAccountCache.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/UserAccountCache.cs
index e1bc243..fb2edb9 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/UserAccountCache.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/UserAccountCache.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
55 if (account != null) 55 if (account != null)
56 m_NameCache.AddOrUpdate(account.Name, account.PrincipalID, DateTime.Now + TimeSpan.FromMinutes(2.0d)); 56 m_NameCache.AddOrUpdate(account.Name, account.PrincipalID, DateTime.Now + TimeSpan.FromMinutes(2.0d));
57 57
58 m_log.DebugFormat("[USER CACHE]: cached user {0}", userID); 58 // m_log.DebugFormat("[USER CACHE]: cached user {0}", userID);
59 } 59 }
60 60
61 public UserAccount Get(UUID userID, out bool inCache) 61 public UserAccount Get(UUID userID, out bool inCache)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 7a97669..7c89e65 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -3335,7 +3335,9 @@ namespace OpenSim.Region.Framework.Scenes
3335 m_sceneGridService.SendCloseChildAgentConnections(agentID, regions); 3335 m_sceneGridService.SendCloseChildAgentConnections(agentID, regions);
3336 3336
3337 } 3337 }
3338 m_log.Debug("[Scene] Beginning ClientClosed");
3338 m_eventManager.TriggerClientClosed(agentID, this); 3339 m_eventManager.TriggerClientClosed(agentID, this);
3340 m_log.Debug("[Scene] Finished ClientClosed");
3339 } 3341 }
3340 catch (NullReferenceException) 3342 catch (NullReferenceException)
3341 { 3343 {
@@ -3343,7 +3345,9 @@ namespace OpenSim.Region.Framework.Scenes
3343 // Avatar is already disposed :/ 3345 // Avatar is already disposed :/
3344 } 3346 }
3345 3347
3348 m_log.Debug("[Scene] Beginning OnRemovePresence");
3346 m_eventManager.TriggerOnRemovePresence(agentID); 3349 m_eventManager.TriggerOnRemovePresence(agentID);
3350 m_log.Debug("[Scene] Finished OnRemovePresence");
3347 ForEachClient( 3351 ForEachClient(
3348 delegate(IClientAPI client) 3352 delegate(IClientAPI client)
3349 { 3353 {
@@ -3359,8 +3363,11 @@ namespace OpenSim.Region.Framework.Scenes
3359 } 3363 }
3360 3364
3361 // Remove the avatar from the scene 3365 // Remove the avatar from the scene
3366 m_log.Debug("[Scene] Begin RemoveScenePresence");
3362 m_sceneGraph.RemoveScenePresence(agentID); 3367 m_sceneGraph.RemoveScenePresence(agentID);
3368 m_log.Debug("[Scene] Finished RemoveScenePresence. Removing the client manager");
3363 m_clientManager.Remove(agentID); 3369 m_clientManager.Remove(agentID);
3370 m_log.Debug("[Scene] Removed the client manager. Firing avatar.close");
3364 3371
3365 try 3372 try
3366 { 3373 {
@@ -3374,9 +3381,9 @@ namespace OpenSim.Region.Framework.Scenes
3374 { 3381 {
3375 m_log.Error("[SCENE] Scene.cs:RemoveClient exception: " + e.ToString()); 3382 m_log.Error("[SCENE] Scene.cs:RemoveClient exception: " + e.ToString());
3376 } 3383 }
3377 3384 m_log.Debug("[Scene] Done. Firing RemoveCircuit");
3378 m_authenticateHandler.RemoveCircuit(avatar.ControllingClient.CircuitCode); 3385 m_authenticateHandler.RemoveCircuit(avatar.ControllingClient.CircuitCode);
3379 3386 m_log.Debug("[Scene] The avatar has left the building");
3380 //m_log.InfoFormat("[SCENE] Memory pre GC {0}", System.GC.GetTotalMemory(false)); 3387 //m_log.InfoFormat("[SCENE] Memory pre GC {0}", System.GC.GetTotalMemory(false));
3381 //m_log.InfoFormat("[SCENE] Memory post GC {0}", System.GC.GetTotalMemory(true)); 3388 //m_log.InfoFormat("[SCENE] Memory post GC {0}", System.GC.GetTotalMemory(true));
3382 } 3389 }
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index fbe1da9..dd780b7 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1827,7 +1827,7 @@ namespace OpenSim.Region.Framework.Scenes
1827 // which stops client-side interpolation of deactivated joint proxy objects. 1827 // which stops client-side interpolation of deactivated joint proxy objects.
1828 } 1828 }
1829 1829
1830 if (!UsePhysics) 1830 if (!UsePhysics && !isNew)
1831 { 1831 {
1832 // reset velocity to 0 on physics switch-off. Without that, the client thinks the 1832 // reset velocity to 0 on physics switch-off. Without that, the client thinks the
1833 // prim still has velocity and continues to interpolate its position along the old 1833 // prim still has velocity and continues to interpolate its position along the old
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 1486e2a..9bece31 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -4200,25 +4200,27 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4200 { 4200 {
4201 m_host.AddScriptLPS(1); 4201 m_host.AddScriptLPS(1);
4202 4202
4203 List<TaskInventoryItem> inv;
4203 try 4204 try
4204 { 4205 {
4205 m_host.TaskInventory.LockItemsForRead(true); 4206 m_host.TaskInventory.LockItemsForRead(true);
4206 foreach (TaskInventoryItem item in m_host.TaskInventory.Values) 4207 inv = new List<TaskInventoryItem>(m_host.TaskInventory.Values);
4207 {
4208 if (item.Name == name)
4209 {
4210 if (item.ItemID == m_itemID)
4211 throw new ScriptDeleteException();
4212 else
4213 m_host.Inventory.RemoveInventoryItem(item.ItemID);
4214 return;
4215 }
4216 }
4217 } 4208 }
4218 finally 4209 finally
4219 { 4210 {
4220 m_host.TaskInventory.LockItemsForRead(false); 4211 m_host.TaskInventory.LockItemsForRead(false);
4221 } 4212 }
4213 foreach (TaskInventoryItem item in inv)
4214 {
4215 if (item.Name == name)
4216 {
4217 if (item.ItemID == m_itemID)
4218 throw new ScriptDeleteException();
4219 else
4220 m_host.Inventory.RemoveInventoryItem(item.ItemID);
4221 return;
4222 }
4223 }
4222 } 4224 }
4223 4225
4224 public void llSetText(string text, LSL_Vector color, double alpha) 4226 public void llSetText(string text, LSL_Vector color, double alpha)