1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 17:17:44 +00:00

Kernel: Switch singletons to use new Singleton class

MemoryManager cannot use the Singleton class because
MemoryManager::initialize is called before the global constructors
are run. That caused the Singleton to be re-initialized, causing
it to create another MemoryManager instance.

Fixes #3226
This commit is contained in:
Tom 2020-08-24 19:35:19 -06:00 committed by Andreas Kling
parent ba6e4fb77f
commit d89582880e
46 changed files with 221 additions and 170 deletions

View file

@ -42,6 +42,7 @@ class TimeManagement {
AK_MAKE_ETERNAL;
public:
TimeManagement();
static bool initialized();
static void initialize();
static TimeManagement& the();
@ -63,7 +64,6 @@ public:
static timeval now_as_timeval();
private:
explicit TimeManagement(bool probe_non_legacy_hardware_timers);
bool probe_and_set_legacy_hardware_timers();
bool probe_and_set_non_legacy_hardware_timers();
Vector<HardwareTimer*> scan_and_initialize_periodic_timers();