Fixed issue when sometimes initializing drivers can crash the system

This commit is contained in:
Alex 2022-11-04 05:30:04 +02:00
parent 9bd37041a6
commit 0b7bbd20d6
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD

View File

@ -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);
}