aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2013-05-16 17:30:30 +0100
committerJustin Clark-Casey (justincc)2013-05-16 17:30:30 +0100
commit3bc8cf65a4e933cfdd0597affc1685c74fb29dba (patch)
tree9c5fd3d0a82377dc99df7ae01629b88e8472ad58
parentOn closing child agents, send separate asynchronous requests to each neighbou... (diff)
downloadopensim-SC-3bc8cf65a4e933cfdd0597affc1685c74fb29dba.zip
opensim-SC-3bc8cf65a4e933cfdd0597affc1685c74fb29dba.tar.gz
opensim-SC-3bc8cf65a4e933cfdd0597affc1685c74fb29dba.tar.bz2
opensim-SC-3bc8cf65a4e933cfdd0597affc1685c74fb29dba.tar.xz
Where this is not already happening, trigger asychoronous calls to CloseChildAgent() above the LocalSimulationConnector level.
This is so that other callers (such as SceneCommunicationService.SendCloseChildAgentConnections() can perform all closes asynchronously without pointlessly firing another thread for local closes). No functional change apart from elimination of unnecessary chaining of new threads.
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs1
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs2
-rw-r--r--OpenSim/Server/Handlers/Simulation/AgentHandlers.cs2
3 files changed, 3 insertions, 2 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index eac0da7..9579449 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -937,6 +937,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
937 EnableChildAgents(sp); 937 EnableChildAgents(sp);
938 938
939 // Finally, kill the agent we just created at the destination. 939 // Finally, kill the agent we just created at the destination.
940 // XXX: Possibly this should be done asynchronously.
940 Scene.SimulationService.CloseAgent(finalDestination, sp.UUID); 941 Scene.SimulationService.CloseAgent(finalDestination, sp.UUID);
941 } 942 }
942 943
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
index a413546..9427961 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs
@@ -317,7 +317,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
317// "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate", 317// "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate",
318// s.RegionInfo.RegionName, destination.RegionHandle); 318// s.RegionInfo.RegionName, destination.RegionHandle);
319 319
320 Util.FireAndForget(delegate { m_scenes[destination.RegionID].IncomingCloseAgent(id, false); }); 320 m_scenes[destination.RegionID].IncomingCloseAgent(id, false);
321 return true; 321 return true;
322 } 322 }
323 323
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
index 012b14e..ae37ca7 100644
--- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
+++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
@@ -218,7 +218,7 @@ namespace OpenSim.Server.Handlers.Simulation
218 if (action.Equals("release")) 218 if (action.Equals("release"))
219 ReleaseAgent(regionID, id); 219 ReleaseAgent(regionID, id);
220 else 220 else
221 m_SimulationService.CloseAgent(destination, id); 221 Util.FireAndForget(delegate { m_SimulationService.CloseAgent(destination, id); });
222 222
223 responsedata["int_response_code"] = HttpStatusCode.OK; 223 responsedata["int_response_code"] = HttpStatusCode.OK;
224 responsedata["str_response_string"] = "OpenSim agent " + id.ToString(); 224 responsedata["str_response_string"] = "OpenSim agent " + id.ToString();