aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJohn Hurliman2009-10-14 14:25:58 -0700
committerJohn Hurliman2009-10-14 14:25:58 -0700
commit1e9e9df0b3c2c6fad5e94db96c799bb31c193af1 (patch)
tree383ef98b9ec98793103cbf21235df80523ce9e71 /OpenSim/Region
parent* Added the "show connections" command to print out all of the currently trac... (diff)
downloadopensim-SC-1e9e9df0b3c2c6fad5e94db96c799bb31c193af1.zip
opensim-SC-1e9e9df0b3c2c6fad5e94db96c799bb31c193af1.tar.gz
opensim-SC-1e9e9df0b3c2c6fad5e94db96c799bb31c193af1.tar.bz2
opensim-SC-1e9e9df0b3c2c6fad5e94db96c799bb31c193af1.tar.xz
* Switched to a plain lock for the ClientManager collections and protected the TryGetValues with try/catch instead of a lock
* Added ClientManager.ForEachSync() for operations that need to run synchronously, such as "show connections"
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Application/OpenSim.cs2
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs4
2 files changed, 4 insertions, 2 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index 0fcc21e..ca6a2a3 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -933,7 +933,7 @@ namespace OpenSim
933 m_sceneManager.ForEachScene( 933 m_sceneManager.ForEachScene(
934 delegate(Scene scene) 934 delegate(Scene scene)
935 { 935 {
936 scene.ClientManager.ForEach( 936 scene.ClientManager.ForEachSync(
937 delegate(IClientAPI client) 937 delegate(IClientAPI client)
938 { 938 {
939 connections.AppendFormat("{0}: {1} ({2}) from {3} on circuit {4}\n", 939 connections.AppendFormat("{0}: {1} ({2}) from {3} on circuit {4}\n",
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
index 384eda7..09845d6 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs
@@ -152,7 +152,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
152 m_throttleRates = new ThrottleRates(configSource); 152 m_throttleRates = new ThrottleRates(configSource);
153 } 153 }
154 154
155 public new void Start() 155 public void Start()
156 { 156 {
157 if (m_scene == null) 157 if (m_scene == null)
158 throw new InvalidOperationException("[LLUDPSERVER]: Cannot LLUDPServer.Start() without an IScene reference"); 158 throw new InvalidOperationException("[LLUDPSERVER]: Cannot LLUDPServer.Start() without an IScene reference");
@@ -817,6 +817,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
817 private void LogoutHandler(IClientAPI client) 817 private void LogoutHandler(IClientAPI client)
818 { 818 {
819 client.SendLogoutPacket(); 819 client.SendLogoutPacket();
820 if (client.IsActive)
821 RemoveClient(((LLClientView)client).UDPClient);
820 } 822 }
821 } 823 }
822} 824}