mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 01:06:30 +08:00
* 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
This commit is contained in:
@@ -1025,6 +1025,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
float physicsFPS = 0;
|
||||
|
||||
frameMS = Environment.TickCount;
|
||||
|
||||
try
|
||||
{
|
||||
// Increment the frame counter
|
||||
@@ -1152,6 +1153,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||
if ((maintc < (m_timespan * 1000)) && maintc > 0)
|
||||
Thread.Sleep(maintc);
|
||||
|
||||
// Tell the watchdog that this thread is still alive
|
||||
Watchdog.UpdateThread();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2705,8 +2705,6 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||
{
|
||||
foreach (OdePrim prim in _taintedPrimL)
|
||||
{
|
||||
|
||||
|
||||
if (prim.m_taintremove)
|
||||
{
|
||||
//Console.WriteLine("Simulate calls RemovePrimThreadLocked");
|
||||
@@ -2719,6 +2717,12 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||
}
|
||||
processedtaints = true;
|
||||
prim.m_collisionscore = 0;
|
||||
|
||||
// This loop can block up the Heartbeat for a very long time on large regions.
|
||||
// We need to let the Watchdog know that the Heartbeat is not dead
|
||||
// NOTE: This is currently commented out, but if things like OAR loading are
|
||||
// timing the heartbeat out we will need to uncomment it
|
||||
//Watchdog.UpdateThread();
|
||||
}
|
||||
|
||||
if (SupportsNINJAJoints)
|
||||
|
||||
Reference in New Issue
Block a user