ミューテックスを使用してコードのセクションを保護しようとしています。コードがクラッシュしたため、同じことを行う簡単なテスト コードを以下に作成しました。クラッシュは毎回同じコード行で発生するとは限りませんが、常に "WaitForSingleObject" または "Sleep" 呼び出しの前後で発生します。
任意の支援をいただければ幸いです。
#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);
}