From 4e555b87f31c0e82b6120564cd6d8e2b41a3b8bf Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Tue, 12 Aug 2008 19:00:13 +0000 Subject: * Stop warnings about non existent scene presences/entities being removed on client log off * This is being done by preventing close from being called twice on child agent closure (nres which would have been thrown are being swallowed). * However, it should be possible to do much better cleanup on this code in the future --- OpenSim/Region/Environment/Scenes/InnerScene.cs | 22 +++++++++++----------- OpenSim/Region/Environment/Scenes/Scene.cs | 3 +++ 2 files changed, 14 insertions(+), 11 deletions(-) (limited to 'OpenSim/Region/Environment/Scenes') diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index c4e4919..cdc05ee 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs @@ -584,26 +584,26 @@ namespace OpenSim.Region.Environment.Scenes { lock (Entities) { - if (Entities.Remove(agentID)) - { - //m_log.InfoFormat("[SCENE] Removed scene presence {0} from entities list", agentID); - } - else + if (!Entities.Remove(agentID)) { m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene Entities list", agentID); } +// else +// { +// m_log.InfoFormat("[SCENE] Removed scene presence {0} from entities list", agentID); +// } } lock (ScenePresences) { - if (ScenePresences.Remove(agentID)) - { - //m_log.InfoFormat("[SCENE] Removed scene presence {0}", agentID); - } - else + if (!ScenePresences.Remove(agentID)) { - m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene ScenePresences list", agentID); + m_log.WarnFormat("[SCENE] Tried to remove non-existent scene presence with agent ID {0} from scene ScenePresences list", agentID); } +// else +// { +// m_log.InfoFormat("[SCENE] Removed scene presence {0} from scene presences list", agentID); +// } } } diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index b54713f..ef0a119 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -2259,6 +2259,7 @@ namespace OpenSim.Region.Environment.Scenes { childagentYN = avatar.IsChildAgent; } + try { m_log.DebugFormat( @@ -2295,6 +2296,7 @@ namespace OpenSim.Region.Environment.Scenes // We don't know which count to remove it from // Avatar is already disposed :/ } + m_eventManager.TriggerOnRemovePresence(agentID); Broadcast(delegate(IClientAPI client) { @@ -2631,6 +2633,7 @@ namespace OpenSim.Region.Environment.Scenes { m_innerScene.removeUserCount(true); } + // Tell a single agent to disconnect from the region. presence.ControllingClient.SendShutdownConnectionNotice(); -- cgit v1.1