summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/DeadlockDetect.cpp18
-rw-r--r--source/DeadlockDetect.h5
2 files changed, 5 insertions, 18 deletions
diff --git a/source/DeadlockDetect.cpp b/source/DeadlockDetect.cpp
index 960038f81..de9a32d39 100644
--- a/source/DeadlockDetect.cpp
+++ b/source/DeadlockDetect.cpp
@@ -13,10 +13,10 @@
/// Number of milliseconds per cycle
-const int CYCLE_MILLISECONDS = 500;
+const int CYCLE_MILLISECONDS = 100;
/// When the number of cycles for the same world age hits this value, it is considered a deadlock
-const int NUM_CYCLES_LIMIT = 40; // 40 = twenty seconds
+const int NUM_CYCLES_LIMIT = 200; // 200 = twenty seconds
@@ -60,20 +60,10 @@ bool cDeadlockDetect::Start(void)
-void cDeadlockDetect::Stop(void)
-{
- m_EvtTerminate.Set();
- super::Stop();
-}
-
-
-
-
-
void cDeadlockDetect::Execute(void)
{
// Loop until the event is signalled
- while (m_EvtTerminate.Wait(CYCLE_MILLISECONDS) == cEvent::wrTimeout)
+ while (!m_ShouldTerminate)
{
// Check the world ages:
class cChecker :
@@ -95,6 +85,8 @@ void cDeadlockDetect::Execute(void)
}
} Checker(this);
cRoot::Get()->ForEachWorld(Checker);
+
+ cSleep::MilliSleep(CYCLE_MILLISECONDS);
} // while (should run)
}
diff --git a/source/DeadlockDetect.h b/source/DeadlockDetect.h
index bbd76826a..2559c3fff 100644
--- a/source/DeadlockDetect.h
+++ b/source/DeadlockDetect.h
@@ -31,9 +31,6 @@ public:
/// Starts the detection. Hides cIsThread's Start, because we need some initialization
bool Start(void);
- /// Stops the detection. Hides cIsThread's Stop, because we need to signal m_EvtTerminate
- void Stop(void);
-
protected:
struct sWorldAge
{
@@ -49,8 +46,6 @@ protected:
WorldAges m_WorldAges;
- cEvent m_EvtTerminate;
-
// cIsThread overrides:
virtual void Execute(void) override;