aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-02-24 05:02:33 +0000
committerJustin Clark-Casey (justincc)2012-02-24 05:02:33 +0000
commitf67f37074f3f7e0602b66aa66a044dd9fd107f6a (patch)
treef4e592451ab205b23075d423dab1a2a94dee5629 /OpenSim/Region/Framework/Scenes/Scene.cs
parentIn osSetSpeed(), if no avatar for a uuid is found then don't attempt to set s... (diff)
downloadopensim-SC-f67f37074f3f7e0602b66aa66a044dd9fd107f6a.zip
opensim-SC-f67f37074f3f7e0602b66aa66a044dd9fd107f6a.tar.gz
opensim-SC-f67f37074f3f7e0602b66aa66a044dd9fd107f6a.tar.bz2
opensim-SC-f67f37074f3f7e0602b66aa66a044dd9fd107f6a.tar.xz
Stop spurious scene loop startup timeout alarms for scenes with many prims.
On the first frame, all startup scene objects are added to the physics scene. This can cause a considerable delay, so we don't start raising the alarm on scene loop timeouts until the second frame. This commit also slightly changes the behaviour of timeout reporting. Previously, a report was made for the very first timed out thread, ignoring all others until the next watchdog check. Instead, we now report every timed out thread, though we still only do this once no matter how long the timeout.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs12
1 files changed, 9 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index cf6e6af..19d4bad 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1140,7 +1140,7 @@ namespace OpenSim.Region.Framework.Scenes
1140 1140
1141 HeartbeatThread 1141 HeartbeatThread
1142 = Watchdog.StartThread( 1142 = Watchdog.StartThread(
1143 Heartbeat, string.Format("Heartbeat ({0})", RegionInfo.RegionName), ThreadPriority.Normal, false); 1143 Heartbeat, string.Format("Heartbeat ({0})", RegionInfo.RegionName), ThreadPriority.Normal, false, false);
1144 } 1144 }
1145 1145
1146 /// <summary> 1146 /// <summary>
@@ -1178,6 +1178,13 @@ namespace OpenSim.Region.Framework.Scenes
1178 try 1178 try
1179 { 1179 {
1180 m_eventManager.TriggerOnRegionStarted(this); 1180 m_eventManager.TriggerOnRegionStarted(this);
1181
1182 // The first frame can take a very long time due to physics actors being added on startup. Therefore,
1183 // don't turn on the watchdog alarm for this thread until the second frame, in order to prevent false
1184 // alarms for scenes with many objects.
1185 Update();
1186 Watchdog.GetCurrentThreadInfo().AlarmIfTimeout = true;
1187
1181 while (!shuttingdown) 1188 while (!shuttingdown)
1182 Update(); 1189 Update();
1183 1190
@@ -1206,7 +1213,7 @@ namespace OpenSim.Region.Framework.Scenes
1206 1213
1207 ++Frame; 1214 ++Frame;
1208 1215
1209// m_log.DebugFormat("[SCENE]: Processing frame {0}", Frame); 1216// m_log.DebugFormat("[SCENE]: Processing frame {0} in {1}", Frame, RegionInfo.RegionName);
1210 1217
1211 try 1218 try
1212 { 1219 {
@@ -1418,7 +1425,6 @@ namespace OpenSim.Region.Framework.Scenes
1418 entry.checkAtTargets(); 1425 entry.checkAtTargets();
1419 } 1426 }
1420 1427
1421
1422 /// <summary> 1428 /// <summary>
1423 /// Send out simstats data to all clients 1429 /// Send out simstats data to all clients
1424 /// </summary> 1430 /// </summary>