diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Application/OpenSim.cs | 10 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 39 |
2 files changed, 36 insertions, 13 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index cffbb3b..492ee4a 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -239,13 +239,15 @@ namespace OpenSim | |||
239 | m_console.Commands.AddCommand("Debug", false, "debug teleport", "debug teleport", "Toggle teleport route debugging", Debug); | 239 | m_console.Commands.AddCommand("Debug", false, "debug teleport", "debug teleport", "Toggle teleport route debugging", Debug); |
240 | 240 | ||
241 | m_console.Commands.AddCommand("Debug", false, "debug scene", | 241 | m_console.Commands.AddCommand("Debug", false, "debug scene", |
242 | "debug scene active|collisions|physics|scripting|teleport true|false", | 242 | "debug scene active|collisions|pbackup|physics|scripting|teleport|updates true|false", |
243 | "Turn on scene debugging.", | 243 | "Turn on scene debugging options.", |
244 | "If active is false then main scene update and maintenance loops are suspended.\n" | 244 | "If active is false then main scene update and maintenance loops are suspended.\n" |
245 | + "If collisions is false then collisions with other objects are turned off.\n" | 245 | + "If collisions is false then collisions with other objects are turned off.\n" |
246 | + "If pbackup is false then periodic scene backup is turned off.\n" | ||
246 | + "If physics is false then all physics objects are non-physical.\n" | 247 | + "If physics is false then all physics objects are non-physical.\n" |
247 | + "If scripting is false then no scripting operations happen.\n" | 248 | + "If scripting is false then no scripting operations happen.\n" |
248 | + "If teleport is true then some extra teleport debug information is logged.", | 249 | + "If teleport is true then some extra teleport debug information is logged." |
250 | + "If updates is true then any frame which exceeds double the maximum desired frame time is logged.", | ||
249 | Debug); | 251 | Debug); |
250 | 252 | ||
251 | m_console.Commands.AddCommand("General", false, "change region", | 253 | m_console.Commands.AddCommand("General", false, "change region", |
@@ -764,7 +766,7 @@ namespace OpenSim | |||
764 | else | 766 | else |
765 | { | 767 | { |
766 | MainConsole.Instance.Output( | 768 | MainConsole.Instance.Output( |
767 | "Usage: debug scene active|scripting|collisions|physics|teleport true|false"); | 769 | "Usage: debug scene active|collisions|pbackup|physics|scripting|teleport|updates true|false"); |
768 | } | 770 | } |
769 | 771 | ||
770 | break; | 772 | break; |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index cca295c..5c3521c 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -77,6 +77,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
77 | /// </summary> | 77 | /// </summary> |
78 | public bool DebugUpdates { get; private set; } | 78 | public bool DebugUpdates { get; private set; } |
79 | 79 | ||
80 | /// <summary> | ||
81 | /// If true then the scene is saved to persistent storage periodically, every m_update_backup frames and | ||
82 | /// if objects meet required conditions (m_dontPersistBefore and m_dontPersistAfter). | ||
83 | /// </summary> | ||
84 | /// <remarks> | ||
85 | /// Even if false, the scene will still be saved on clean shutdown. | ||
86 | /// FIXME: Currently, setting this to false will mean that objects are not periodically returned from parcels. | ||
87 | /// This needs to be fixed. | ||
88 | /// </remarks> | ||
89 | public bool PeriodicBackup { get; private set; } | ||
90 | |||
91 | /// <summary> | ||
92 | /// If false then the scene is never saved to persistence storage even if PeriodicBackup == true and even | ||
93 | /// if the scene is being shut down for the final time. | ||
94 | /// </summary> | ||
95 | public bool UseBackup { get; private set; } | ||
96 | |||
80 | public SynchronizeSceneHandler SynchronizeScene; | 97 | public SynchronizeSceneHandler SynchronizeScene; |
81 | 98 | ||
82 | /// <summary> | 99 | /// <summary> |
@@ -341,7 +358,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
341 | 358 | ||
342 | private Timer m_mapGenerationTimer = new Timer(); | 359 | private Timer m_mapGenerationTimer = new Timer(); |
343 | private bool m_generateMaptiles; | 360 | private bool m_generateMaptiles; |
344 | private bool m_useBackup = true; | ||
345 | 361 | ||
346 | #endregion Fields | 362 | #endregion Fields |
347 | 363 | ||
@@ -594,11 +610,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
594 | get { return m_authenticateHandler; } | 610 | get { return m_authenticateHandler; } |
595 | } | 611 | } |
596 | 612 | ||
597 | public bool UseBackup | ||
598 | { | ||
599 | get { return m_useBackup; } | ||
600 | } | ||
601 | |||
602 | // an instance to the physics plugin's Scene object. | 613 | // an instance to the physics plugin's Scene object. |
603 | public PhysicsScene PhysicsScene | 614 | public PhysicsScene PhysicsScene |
604 | { | 615 | { |
@@ -768,8 +779,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
768 | StartDisabled = startupConfig.GetBoolean("StartDisabled", false); | 779 | StartDisabled = startupConfig.GetBoolean("StartDisabled", false); |
769 | 780 | ||
770 | m_defaultDrawDistance = startupConfig.GetFloat("DefaultDrawDistance", m_defaultDrawDistance); | 781 | m_defaultDrawDistance = startupConfig.GetFloat("DefaultDrawDistance", m_defaultDrawDistance); |
771 | m_useBackup = startupConfig.GetBoolean("UseSceneBackup", m_useBackup); | 782 | UseBackup = startupConfig.GetBoolean("UseSceneBackup", UseBackup); |
772 | if (!m_useBackup) | 783 | if (!UseBackup) |
773 | m_log.InfoFormat("[SCENE]: Backup has been disabled for {0}", RegionInfo.RegionName); | 784 | m_log.InfoFormat("[SCENE]: Backup has been disabled for {0}", RegionInfo.RegionName); |
774 | 785 | ||
775 | //Animation states | 786 | //Animation states |
@@ -937,6 +948,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
937 | { | 948 | { |
938 | PhysicalPrims = true; | 949 | PhysicalPrims = true; |
939 | CollidablePrims = true; | 950 | CollidablePrims = true; |
951 | PeriodicBackup = true; | ||
952 | UseBackup = true; | ||
940 | 953 | ||
941 | BordersLocked = true; | 954 | BordersLocked = true; |
942 | Border northBorder = new Border(); | 955 | Border northBorder = new Border(); |
@@ -1189,6 +1202,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
1189 | Active = active; | 1202 | Active = active; |
1190 | } | 1203 | } |
1191 | 1204 | ||
1205 | if (options.ContainsKey("pbackup")) | ||
1206 | { | ||
1207 | bool active; | ||
1208 | |||
1209 | if (bool.TryParse(options["pbackup"], out active)) | ||
1210 | PeriodicBackup = active; | ||
1211 | } | ||
1212 | |||
1192 | if (options.ContainsKey("scripting")) | 1213 | if (options.ContainsKey("scripting")) |
1193 | { | 1214 | { |
1194 | bool enableScripts = true; | 1215 | bool enableScripts = true; |
@@ -1570,7 +1591,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1570 | eventMS = Util.EnvironmentTickCountSubtract(tmpMS); | 1591 | eventMS = Util.EnvironmentTickCountSubtract(tmpMS); |
1571 | } | 1592 | } |
1572 | 1593 | ||
1573 | if (Frame % m_update_backup == 0) | 1594 | if (PeriodicBackup && Frame % m_update_backup == 0) |
1574 | { | 1595 | { |
1575 | tmpMS = Util.EnvironmentTickCount(); | 1596 | tmpMS = Util.EnvironmentTickCount(); |
1576 | UpdateStorageBackup(); | 1597 | UpdateStorageBackup(); |