From 0b7bbd20d6ebd24a6395b3a29ea76a93ecfdb704 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 4 Nov 2022 05:30:04 +0200 Subject: [PATCH] Fixed issue when sometimes initializing drivers can crash the system --- Core/Driver.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Core/Driver.cpp b/Core/Driver.cpp index df75237..540228e 100644 --- a/Core/Driver.cpp +++ b/Core/Driver.cpp @@ -12,6 +12,7 @@ #include "../DAPI.hpp" #include "../Fex.hpp" +NewLock(DriverInitLock); NewLock(DriverDisplayPrintLock); namespace Driver @@ -318,6 +319,7 @@ namespace Driver Driver::Driver() { + SmartCriticalSection(DriverInitLock); FileSystem::FILE *DriverDirectory = vfs->Open(Config.DriverDirectory); if (DriverDirectory->Status == FileSystem::FileStatus::OK) foreach (auto driver in DriverDirectory->Node->Children) @@ -352,6 +354,7 @@ namespace Driver void DriverInterruptHook::OnInterruptReceived(void *Frame) #endif { + CriticalSection cs; // or SmartCriticalSection(DriverInitLock); ? ((int (*)(void *))(Handle))(Data); }