Я пытаюсь защитить раздел кода с помощью мьютекса. Из-за сбоя кода я создал простой бит тестового кода ниже, который делает то же самое. Авария всегда не обязательно в одной строке кода, но всегда вокруг вызовов «WaitForSingleObject» или «Sleep».WaitForSingleObject Crash
Любая помощь будет оценена по достоинству.
#include <thread>
#include <windows.h>
#include <process.h>
static HANDLE myMutex;
//The function we want to make the thread run.
void task1()
{
WaitForSingleObject(myMutex, INFINITE);
for (int i = 0; i < 20; i++)
{
Sleep(500);
}
ReleaseMutex(myMutex);
}
void task2()
{
Sleep(10);
WaitForSingleObject(myMutex, INFINITE);
for (int i = 0; i < 20; i++)
{
Sleep(10);
}
ReleaseMutex(myMutex);
}
int main(int argc, char **argv)
{
myMutex = CreateMutex(0, FALSE, 0);
std::thread t1(task1);
std::thread t2(task2);
}