diff options
author | Diva Canto | 2012-02-19 12:28:07 -0800 |
---|---|---|
committer | Diva Canto | 2012-02-19 12:28:07 -0800 |
commit | 20c65ac438ee67ecd3f837d268e44992f13a8af6 (patch) | |
tree | 0ca85b2064e8b5459f34586079d06a34d0e595ec /OpenSim/Region/CoreModules | |
parent | This should smooth movement in heteregeneous networks by a lot: cache the reg... (diff) | |
download | opensim-SC_OLD-20c65ac438ee67ecd3f837d268e44992f13a8af6.zip opensim-SC_OLD-20c65ac438ee67ecd3f837d268e44992f13a8af6.tar.gz opensim-SC_OLD-20c65ac438ee67ecd3f837d268e44992f13a8af6.tar.bz2 opensim-SC_OLD-20c65ac438ee67ecd3f837d268e44992f13a8af6.tar.xz |
A few more tweaks on position updates and create child agents. Mono hates concurrent uses of the same TCP connection, and even of the connections to the same server. So let's stop doing it. This patch makes movement much smoother when there are lots of neighbours.
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 928bcd0..6e4c0b1 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -1258,12 +1258,16 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1258 | 1258 | ||
1259 | if (neighbour.RegionHandle != sp.Scene.RegionInfo.RegionHandle) | 1259 | if (neighbour.RegionHandle != sp.Scene.RegionInfo.RegionHandle) |
1260 | { | 1260 | { |
1261 | InformClientOfNeighbourDelegate d = InformClientOfNeighbourAsync; | ||
1262 | try | 1261 | try |
1263 | { | 1262 | { |
1264 | d.BeginInvoke(sp, cagents[count], neighbour, neighbour.ExternalEndPoint, newAgent, | 1263 | // Let's put this back at sync, so that it doesn't clog |
1265 | InformClientOfNeighbourCompleted, | 1264 | // the network, especially for regions in the same physical server. |
1266 | d); | 1265 | // We're really not in a hurry here. |
1266 | InformClientOfNeighbourAsync(sp, cagents[count], neighbour, neighbour.ExternalEndPoint, newAgent); | ||
1267 | //InformClientOfNeighbourDelegate d = InformClientOfNeighbourAsync; | ||
1268 | //d.BeginInvoke(sp, cagents[count], neighbour, neighbour.ExternalEndPoint, newAgent, | ||
1269 | // InformClientOfNeighbourCompleted, | ||
1270 | // d); | ||
1267 | } | 1271 | } |
1268 | 1272 | ||
1269 | catch (ArgumentOutOfRangeException) | 1273 | catch (ArgumentOutOfRangeException) |