diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/DeadlockDetect.cpp | 18 | ||||
-rw-r--r-- | source/DeadlockDetect.h | 5 |
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; |