diff options
author | Teravus Ovares | 2007-12-12 00:38:57 +0000 |
---|---|---|
committer | Teravus Ovares | 2007-12-12 00:38:57 +0000 |
commit | 9abe4b2ebf537d32b0b01d404497f290a4f4f806 (patch) | |
tree | 63c12f570f5e82ccc54b99a805c41ce84abeba65 /OpenSim/Region/Environment/Scenes/Scene.cs | |
parent | put in a try block to catch the ForEach loop dying. (diff) | |
download | opensim-SC_OLD-9abe4b2ebf537d32b0b01d404497f290a4f4f806.zip opensim-SC_OLD-9abe4b2ebf537d32b0b01d404497f290a4f4f806.tar.gz opensim-SC_OLD-9abe4b2ebf537d32b0b01d404497f290a4f4f806.tar.bz2 opensim-SC_OLD-9abe4b2ebf537d32b0b01d404497f290a4f4f806.tar.xz |
* Start listening for client connections immediately after a region initializes during initial instance startup. (as opposed to waiting for 'all of the regions' to initialize first)
* Removed hackish timer based client notification about regions up (no longer needed)
* Added a comment about an inventory based login failure that causes me lots of greif testing and debugging. Comment includes *why* it's failing.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index fef02f0..f2b5643 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -313,17 +313,27 @@ namespace OpenSim.Region.Environment.Scenes | |||
313 | } | 313 | } |
314 | if ((Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1) && (Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1)) | 314 | if ((Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1) && (Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1)) |
315 | { | 315 | { |
316 | lock (m_regionRestartNotifyList) | 316 | try |
317 | { | 317 | { |
318 | if (!(m_regionRestartNotifyList.Contains(otherRegion))) | ||
319 | { | ||
320 | m_regionRestartNotifyList.Add(otherRegion); | ||
321 | 318 | ||
322 | m_restartWaitTimer.Interval = 50000; | 319 | ForEachScenePresence(delegate(ScenePresence agent) |
323 | m_restartWaitTimer.AutoReset = false; | 320 | { |
324 | m_restartWaitTimer.Elapsed += new ElapsedEventHandler(RestartNotifyWaitElapsed); | 321 | // If agent is a root agent. |
325 | m_restartWaitTimer.Start(); | 322 | if (!agent.IsChildAgent) |
323 | { | ||
324 | //agent.ControllingClient.new | ||
325 | //this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo()); | ||
326 | InformClientOfNeighbor(agent, otherRegion); | ||
327 | } | ||
326 | } | 328 | } |
329 | |||
330 | ); | ||
331 | } | ||
332 | catch (System.NullReferenceException) | ||
333 | { | ||
334 | // This means that we're not booted up completely yet. | ||
335 | // This shouldn't happen too often anymore. | ||
336 | MainLog.Instance.Error("SCENE", "Couldn't inform client of regionup because we got a null reference exception"); | ||
327 | } | 337 | } |
328 | } | 338 | } |
329 | else | 339 | else |