aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
authorDiva Canto2012-02-19 12:28:07 -0800
committerDiva Canto2012-02-19 12:28:07 -0800
commit20c65ac438ee67ecd3f837d268e44992f13a8af6 (patch)
tree0ca85b2064e8b5459f34586079d06a34d0e595ec /OpenSim/Region/CoreModules
parentThis should smooth movement in heteregeneous networks by a lot: cache the reg... (diff)
downloadopensim-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.cs12
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)