diff options
author | Justin Clark-Casey (justincc) | 2013-05-16 17:30:30 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-05-16 17:30:30 +0100 |
commit | 3bc8cf65a4e933cfdd0597affc1685c74fb29dba (patch) | |
tree | 9c5fd3d0a82377dc99df7ae01629b88e8472ad58 | |
parent | On closing child agents, send separate asynchronous requests to each neighbou... (diff) | |
download | opensim-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.
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(); |