diff options
author | John Hurliman | 2009-10-26 14:41:27 -0700 |
---|---|---|
committer | John Hurliman | 2009-10-26 14:41:27 -0700 |
commit | ac7ccdf7d77810aef0a3ad70f1504fdb111dc0aa (patch) | |
tree | e27db00548a86fbf370b481ab0848bd3d30f21aa /OpenSim/Region | |
parent | Changed UseCircuitCode handling to be synchronous or asynchronous depending o... (diff) | |
download | opensim-SC-ac7ccdf7d77810aef0a3ad70f1504fdb111dc0aa.zip opensim-SC-ac7ccdf7d77810aef0a3ad70f1504fdb111dc0aa.tar.gz opensim-SC-ac7ccdf7d77810aef0a3ad70f1504fdb111dc0aa.tar.bz2 opensim-SC-ac7ccdf7d77810aef0a3ad70f1504fdb111dc0aa.tar.xz |
* Changed the watchdog timer to improve the speed of UpdateThread(), only track threads once the first call to UpdateThread() has been made, and allow re-tracking of threads that timed out but revived later
* Added a commented out call to Watchdog.UpdateThread() in OdeScene. If it turns out that loading a large OAR file or some other operation is timing out the heartbeat thread, we'll need to uncomment it
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index f052c65..95d69a1 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -1025,6 +1025,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1025 | float physicsFPS = 0; | 1025 | float physicsFPS = 0; |
1026 | 1026 | ||
1027 | frameMS = Environment.TickCount; | 1027 | frameMS = Environment.TickCount; |
1028 | |||
1028 | try | 1029 | try |
1029 | { | 1030 | { |
1030 | // Increment the frame counter | 1031 | // Increment the frame counter |
@@ -1152,6 +1153,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1152 | if ((maintc < (m_timespan * 1000)) && maintc > 0) | 1153 | if ((maintc < (m_timespan * 1000)) && maintc > 0) |
1153 | Thread.Sleep(maintc); | 1154 | Thread.Sleep(maintc); |
1154 | 1155 | ||
1156 | // Tell the watchdog that this thread is still alive | ||
1155 | Watchdog.UpdateThread(); | 1157 | Watchdog.UpdateThread(); |
1156 | } | 1158 | } |
1157 | } | 1159 | } |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index f979ce3..82392b1 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -2705,8 +2705,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2705 | { | 2705 | { |
2706 | foreach (OdePrim prim in _taintedPrimL) | 2706 | foreach (OdePrim prim in _taintedPrimL) |
2707 | { | 2707 | { |
2708 | |||
2709 | |||
2710 | if (prim.m_taintremove) | 2708 | if (prim.m_taintremove) |
2711 | { | 2709 | { |
2712 | //Console.WriteLine("Simulate calls RemovePrimThreadLocked"); | 2710 | //Console.WriteLine("Simulate calls RemovePrimThreadLocked"); |
@@ -2719,6 +2717,12 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
2719 | } | 2717 | } |
2720 | processedtaints = true; | 2718 | processedtaints = true; |
2721 | prim.m_collisionscore = 0; | 2719 | prim.m_collisionscore = 0; |
2720 | |||
2721 | // This loop can block up the Heartbeat for a very long time on large regions. | ||
2722 | // We need to let the Watchdog know that the Heartbeat is not dead | ||
2723 | // NOTE: This is currently commented out, but if things like OAR loading are | ||
2724 | // timing the heartbeat out we will need to uncomment it | ||
2725 | //Watchdog.UpdateThread(); | ||
2722 | } | 2726 | } |
2723 | 2727 | ||
2724 | if (SupportsNINJAJoints) | 2728 | if (SupportsNINJAJoints) |