diff options
author | Melanie | 2012-09-16 23:41:34 +0200 |
---|---|---|
committer | Melanie | 2012-09-16 23:41:34 +0200 |
commit | 8dae7928d39399c2ac3d6a0dbd9a1362b2e0f68d (patch) | |
tree | e9b88a8f0bb5daa4b905c32f7ef40c107f2e3339 /OpenSim/Server/Handlers | |
parent | Change the close tmeout from 2 to 3 seconds on teleport. This may (diff) | |
download | opensim-SC_OLD-8dae7928d39399c2ac3d6a0dbd9a1362b2e0f68d.zip opensim-SC_OLD-8dae7928d39399c2ac3d6a0dbd9a1362b2e0f68d.tar.gz opensim-SC_OLD-8dae7928d39399c2ac3d6a0dbd9a1362b2e0f68d.tar.bz2 opensim-SC_OLD-8dae7928d39399c2ac3d6a0dbd9a1362b2e0f68d.tar.xz |
Make agent creation at destination asynchronous. Failures here are pretty
much guaranteed to be fatal and the few times this would dosconnect an agent
are more than made up for by the increased throughput of replying and
closing the connection vs. keeping it open during the heavy work. Also causes
better feedback to the viewer as the time is now split between Requesting
Teleport and Connectiong to Destination.
Diffstat (limited to 'OpenSim/Server/Handlers')
-rw-r--r-- | OpenSim/Server/Handlers/Simulation/AgentHandlers.cs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs index d772c39..0bd8269 100644 --- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs +++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs | |||
@@ -443,7 +443,15 @@ namespace OpenSim.Server.Handlers.Simulation | |||
443 | // subclasses can override this | 443 | // subclasses can override this |
444 | protected virtual bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason) | 444 | protected virtual bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint teleportFlags, out string reason) |
445 | { | 445 | { |
446 | return m_SimulationService.CreateAgent(destination, aCircuit, teleportFlags, out reason); | 446 | reason = String.Empty; |
447 | |||
448 | Util.FireAndForget(x => | ||
449 | { | ||
450 | string r; | ||
451 | m_SimulationService.CreateAgent(destination, aCircuit, teleportFlags, out r); | ||
452 | }); | ||
453 | |||
454 | return true; | ||
447 | } | 455 | } |
448 | } | 456 | } |
449 | 457 | ||