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.
This commit is contained in:
Justin Clark-Casey (justincc)
2013-05-16 17:30:30 +01:00
parent d214e2d0c4
commit 3bc8cf65a4
3 changed files with 3 additions and 2 deletions

View File

@@ -937,6 +937,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
EnableChildAgents(sp);
// Finally, kill the agent we just created at the destination.
// XXX: Possibly this should be done asynchronously.
Scene.SimulationService.CloseAgent(finalDestination, sp.UUID);
}

View File

@@ -317,7 +317,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation
// "[LOCAL SIMULATION CONNECTOR]: Found region {0} {1} to send AgentUpdate",
// s.RegionInfo.RegionName, destination.RegionHandle);
Util.FireAndForget(delegate { m_scenes[destination.RegionID].IncomingCloseAgent(id, false); });
m_scenes[destination.RegionID].IncomingCloseAgent(id, false);
return true;
}