diff options
author | Mattes D <github@xoft.cz> | 2013-11-27 09:23:17 +0100 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2013-11-27 09:23:17 +0100 |
commit | 49760db89d94ede5d123d927141a6cd60dbaaf07 (patch) | |
tree | 6c6cf99e4cf3128311a93cd187947b502f3732a0 /source/DeadlockDetect.h | |
parent | cWorld::SpawnExperienceOrb() now returns the entity ID of the spawned orb. (diff) | |
parent | Fixed VC2008 compilation, normalized include paths. (diff) | |
download | cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar.gz cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar.bz2 cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar.lz cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar.xz cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.tar.zst cuberite-49760db89d94ede5d123d927141a6cd60dbaaf07.zip |
Diffstat (limited to 'source/DeadlockDetect.h')
-rw-r--r-- | source/DeadlockDetect.h | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/source/DeadlockDetect.h b/source/DeadlockDetect.h deleted file mode 100644 index 2559c3fff..000000000 --- a/source/DeadlockDetect.h +++ /dev/null @@ -1,65 +0,0 @@ - -// DeadlockDetect.h - -// Declares the cDeadlockDetect class that tries to detect deadlocks and aborts the server when it detects one - -/* -This class simply monitors each world's m_WorldAge, which is expected to grow on each tick. -If the world age doesn't grow for several seconds, it's either because the server is super-overloaded, -or because the world tick thread hangs in a deadlock. We presume the latter and therefore kill the server. -Once we learn to write crashdumps programmatically, we should do so just before killing, to enable debugging. -*/ - - - -#pragma once - -#include "OSSupport/IsThread.h" - - - - - -class cDeadlockDetect : - public cIsThread -{ - typedef cIsThread super; - -public: - cDeadlockDetect(void); - - /// Starts the detection. Hides cIsThread's Start, because we need some initialization - bool Start(void); - -protected: - struct sWorldAge - { - /// Last m_WorldAge that has been detected in this world - Int64 m_Age; - - /// Number of cycles for which the age has been the same - int m_NumCyclesSame; - } ; - - /// Maps world name -> sWorldAge - typedef std::map<AString, sWorldAge> WorldAges; - - WorldAges m_WorldAges; - - - // cIsThread overrides: - virtual void Execute(void) override; - - /// Sets the initial world age - void SetWorldAge(const AString & a_WorldName, Int64 a_Age); - - /// Checks if the world's age has changed, updates the world's stats; calls DeadlockDetected() if deadlock detected - void CheckWorldAge(const AString & a_WorldName, Int64 a_Age); - - /// Called when a deadlock is detected. Aborts the server. - void DeadlockDetected(void); -} ; - - - - |