aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.cs
diff options
context:
space:
mode:
authorTeravus Ovares2007-11-28 06:18:07 +0000
committerTeravus Ovares2007-11-28 06:18:07 +0000
commitb7d596a6af51bea7dba642cdc768ac5ff77af5f3 (patch)
tree967b749b10b548f6ed687d8ade4680e411793da4 /OpenSim/Region/Environment/Scenes/Scene.cs
parentbuild ThrottleCheck function to clear up bits of the throttle (diff)
downloadopensim-SC-b7d596a6af51bea7dba642cdc768ac5ff77af5f3.zip
opensim-SC-b7d596a6af51bea7dba642cdc768ac5ff77af5f3.tar.gz
opensim-SC-b7d596a6af51bea7dba642cdc768ac5ff77af5f3.tar.bz2
opensim-SC-b7d596a6af51bea7dba642cdc768ac5ff77af5f3.tar.xz
* Restaring the sim works fine in grid mode now. Sims announce themselves to their neighbors when they start up. Neighbors get this message and tell their agents that there's a new sim up.
* Certain unrecoverable physics based crashes in ODE are now hooked up to the 'restart the sim' routine.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs21
1 files changed, 17 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index bdafce8..1359bd2 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -232,6 +232,15 @@ namespace OpenSim.Region.Environment.Scenes
232 m_permissionManager.Initialise(this); 232 m_permissionManager.Initialise(this);
233 233
234 m_innerScene = new InnerScene(this, m_regInfo, m_permissionManager); 234 m_innerScene = new InnerScene(this, m_regInfo, m_permissionManager);
235
236 // If the Inner scene has an Unrecoverable error, restart this sim.
237 // Currently the only thing that causes it to happen is two kinds of specific
238 // Physics based crashes.
239 //
240 // Out of memory
241 // Operating system has killed the plugin
242 m_innerScene.UnRecoverableError += restartNOW;
243
235 m_sceneXmlLoader = new SceneXmlLoader(this, m_innerScene, m_regInfo); 244 m_sceneXmlLoader = new SceneXmlLoader(this, m_innerScene, m_regInfo);
236 245
237 RegisterDefaultSceneEvents(); 246 RegisterDefaultSceneEvents();
@@ -315,13 +324,17 @@ namespace OpenSim.Region.Environment.Scenes
315 { 324 {
316 t_restartTimer.Stop(); 325 t_restartTimer.Stop();
317 t_restartTimer.AutoReset = false; 326 t_restartTimer.AutoReset = false;
318 MainLog.Instance.Error("REGION", "Closing"); 327 restartNOW();
319 Close();
320 MainLog.Instance.Error("REGION", "Firing Region Restart Message");
321 base.Restart(0);
322 } 328 }
323 329
324 } 330 }
331 public void restartNOW()
332 {
333 MainLog.Instance.Error("REGION", "Closing");
334 Close();
335 MainLog.Instance.Error("REGION", "Firing Region Restart Message");
336 base.Restart(0);
337 }
325 public void restart_Notify_Wait_Elapsed(object sender, ElapsedEventArgs e) 338 public void restart_Notify_Wait_Elapsed(object sender, ElapsedEventArgs e)
326 { 339 {
327 m_restartWaitTimer.Stop(); 340 m_restartWaitTimer.Stop();