On logout, delay the removal of AgentCircuitData until the very end, because that data structure contains important information about the agent that may be needed by modules.
parent
3730163e5d
commit
62e9cdd72a
|
@ -3219,10 +3219,6 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
m_authenticateHandler.RemoveCircuit(agentID);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Can we now remove this lock?
|
// TODO: Can we now remove this lock?
|
||||||
lock (acd)
|
lock (acd)
|
||||||
|
@ -3238,7 +3234,8 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat(
|
m_log.ErrorFormat(
|
||||||
"[SCENE]: Called RemoveClient() with agent ID {0} but no such presence is in the scene.", agentID);
|
"[SCENE]: Called RemoveClient() with agent ID {0} but no such presence is in the scene.", agentID);
|
||||||
|
m_authenticateHandler.RemoveCircuit(agentID);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3315,6 +3312,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
// Always clean these structures up so that any failure above doesn't cause them to remain in the
|
// Always clean these structures up so that any failure above doesn't cause them to remain in the
|
||||||
// scene with possibly bad effects (e.g. continually timing out on unacked packets and triggering
|
// scene with possibly bad effects (e.g. continually timing out on unacked packets and triggering
|
||||||
// the same cleanup exception continually.
|
// the same cleanup exception continually.
|
||||||
|
m_authenticateHandler.RemoveCircuit(agentID);
|
||||||
m_sceneGraph.RemoveScenePresence(agentID);
|
m_sceneGraph.RemoveScenePresence(agentID);
|
||||||
m_clientManager.Remove(agentID);
|
m_clientManager.Remove(agentID);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue