Раньше мне задавали вопрос о мьютексе, код работает нормально, но я запутался в этом результате:
::std::mutex s_mutex;
void funcA()
{
s_mutex.lock();
printf( "funcA \n" );
s_mutex.unlock();
}
void funcB()
{
s_mutex.lock();
funcA();
printf( "funcB \n" );
s_mutex.unlock();
}
int main()
{
funcB();
return 0;
}
Он работает нормально и выведите на печать то, что я не сделал.
funcA
funcB
Но почему? Эта функция вызывается в основном потоке и, кажется, вызывает блокировку дважды.