В какой-то момент моей функции он достигнет
pthread_cond_wait (& cond_state, & b_state);
При отправке сигнала и пробуждении этой темы. Он сразу пытается заблокировать мьютекс перед вызовом Enter?
void Enter(int g, int timer){
pthread_mutex_lock(&b_state);
if (room.state == 2 || room.state == g)
{
pthread_mutex_unlock(&b_state);
Leave();
}
else
{
pthread_cond_wait(&cond_state, &b_state);
Enter(g, timer); //Try to enter again
}
}
У меня проблема с тем, что если поток перешел в спящий режим, то, проснувшись, он застрянет в mutex_lock после вызова Enter.