Veuillez trouver le code ci-dessous :
#include
int main(int argc, char* argv[])
{
HANDLE _mutex = ::CreateMutex(NULL, FALSE, "abc");
if (!_mutex)
throw std::runtime_error("CreateMutex failed");
if (::WaitForSingleObject(_mutex, INFINITE) != WAIT_OBJECT_0)
throw std::runtime_error("WaitForSingleObject failed");
printf("Must lock here\n");
if (::WaitForSingleObject(_mutex, INFINITE) != WAIT_OBJECT_0)
throw std::runtime_error("WaitForSingleObject failed");
printf("Why come here????\n");
return 0;
}
Je ne sais pas pourquoi la console affiche :
Must lock here
Why come here???
Est-ce que le mutex ne fonctionne pas? Je veux que le résultat ne montre que
Must lock here
Et bloquer après avoir affiché le texte ci-dessus.