* Rewrote ClientManager to remove Lindenisms from OpenSim core, improve performance by removing locks, and replace LLUDPClientCollection

* Removed the confusing (and LL-specific) shutdowncircuit parameter from IClientAPI.Close()
* Updated the LLUDP code to only use ClientManager instead of trying to synchronize ClientManager and m_clients
* Remove clients asynchronously since it is a very slow operation (including a 2000ms sleep)
This commit is contained in:
John Hurliman
2009-10-13 14:50:03 -07:00
parent c893761319
commit 23a334b9f5
21 changed files with 317 additions and 335 deletions

View File

@@ -408,7 +408,7 @@ namespace OpenSim.Region.Framework.Scenes
}
ViewerEffectPacket.EffectBlock[] effectBlockArray = effectBlock.ToArray();
ClientManager.ForEachClient(
ClientManager.ForEach(
delegate(IClientAPI client)
{
if (client.AgentId != remoteClient.AgentId)

View File

@@ -867,7 +867,7 @@ namespace OpenSim.Region.Framework.Scenes
Thread.Sleep(500);
// Stop all client threads.
ForEachScenePresence(delegate(ScenePresence avatar) { avatar.ControllingClient.Close(true); });
ForEachScenePresence(delegate(ScenePresence avatar) { avatar.ControllingClient.Close(); });
// Stop updating the scene objects and agents.
//m_heartbeatTimer.Close();
@@ -3372,7 +3372,7 @@ namespace OpenSim.Region.Framework.Scenes
loggingOffUser.ControllingClient.Kick(message);
// Give them a second to receive the message!
Thread.Sleep(1000);
loggingOffUser.ControllingClient.Close(true);
loggingOffUser.ControllingClient.Close();
}
else
{
@@ -3543,7 +3543,7 @@ namespace OpenSim.Region.Framework.Scenes
presence.ControllingClient.SendShutdownConnectionNotice();
}
presence.ControllingClient.Close(true);
presence.ControllingClient.Close();
return true;
}