diff options
author | Teravus Ovares | 2007-11-28 06:18:07 +0000 |
---|---|---|
committer | Teravus Ovares | 2007-11-28 06:18:07 +0000 |
commit | b7d596a6af51bea7dba642cdc768ac5ff77af5f3 (patch) | |
tree | 967b749b10b548f6ed687d8ade4680e411793da4 /OpenSim/Region/Environment/Scenes/Scene.cs | |
parent | build ThrottleCheck function to clear up bits of the throttle (diff) | |
download | opensim-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.cs | 21 |
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(); |