aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs38
1 files changed, 22 insertions, 16 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 2f74253..87f0264 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -1067,6 +1067,12 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1067 // May still need to signal neighbours whether child agents may need closing irrespective of whether this 1067 // May still need to signal neighbours whether child agents may need closing irrespective of whether this
1068 // one needed closing. Neighbour regions also contain logic to prevent a close if a subsequent move or 1068 // one needed closing. Neighbour regions also contain logic to prevent a close if a subsequent move or
1069 // teleport re-established the child connection. 1069 // teleport re-established the child connection.
1070 //
1071 // It may be possible to also close child agents after a pause but one needs to be very careful about
1072 // race conditions between different regions on rapid teleporting (e.g. from A1 to a non-neighbour B, back
1073 // to a neighbour A2 then off to a non-neighbour C. Also, closing child agents early may be more compatible
1074 // with complicated scenarios where there a mixture of V1 and V2 teleports, though this is conjecture. It's
1075 // easier to close immediately and greatly reduce the scope of race conditions if possible.
1070 sp.CloseChildAgents(newRegionX, newRegionY); 1076 sp.CloseChildAgents(newRegionX, newRegionY);
1071 1077
1072 // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone 1078 // Finally, let's close this previously-known-as-root agent, when the jump is outside the view zone
@@ -1865,10 +1871,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1865 List<ulong> newRegions = NewNeighbours(neighbourHandles, previousRegionNeighbourHandles); 1871 List<ulong> newRegions = NewNeighbours(neighbourHandles, previousRegionNeighbourHandles);
1866 List<ulong> oldRegions = OldNeighbours(neighbourHandles, previousRegionNeighbourHandles); 1872 List<ulong> oldRegions = OldNeighbours(neighbourHandles, previousRegionNeighbourHandles);
1867 1873
1868 Dump("Current Neighbors", neighbourHandles); 1874// Dump("Current Neighbors", neighbourHandles);
1869 Dump("Previous Neighbours", previousRegionNeighbourHandles); 1875// Dump("Previous Neighbours", previousRegionNeighbourHandles);
1870 Dump("New Neighbours", newRegions); 1876// Dump("New Neighbours", newRegions);
1871 Dump("Old Neighbours", oldRegions); 1877// Dump("Old Neighbours", oldRegions);
1872 1878
1873 /// Update the scene presence's known regions here on this region 1879 /// Update the scene presence's known regions here on this region
1874 sp.DropOldNeighbours(oldRegions); 1880 sp.DropOldNeighbours(oldRegions);
@@ -2180,18 +2186,18 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
2180 return handles; 2186 return handles;
2181 } 2187 }
2182 2188
2183 private void Dump(string msg, List<ulong> handles) 2189// private void Dump(string msg, List<ulong> handles)
2184 { 2190// {
2185 m_log.InfoFormat("-------------- HANDLE DUMP ({0}) ---------", msg); 2191// m_log.InfoFormat("-------------- HANDLE DUMP ({0}) ---------", msg);
2186 foreach (ulong handle in handles) 2192// foreach (ulong handle in handles)
2187 { 2193// {
2188 uint x, y; 2194// uint x, y;
2189 Utils.LongToUInts(handle, out x, out y); 2195// Utils.LongToUInts(handle, out x, out y);
2190 x = x / Constants.RegionSize; 2196// x = x / Constants.RegionSize;
2191 y = y / Constants.RegionSize; 2197// y = y / Constants.RegionSize;
2192 m_log.InfoFormat("({0}, {1})", x, y); 2198// m_log.InfoFormat("({0}, {1})", x, y);
2193 } 2199// }
2194 } 2200// }
2195 2201
2196 #endregion 2202 #endregion
2197 2203