У меня есть следующий фрагмент кода в потоке A, который блокирует использование pthread_cond_wait()
pthread_mutex_lock(&my_lock);
if ( false == testCondition )
pthread_cond_wait(&my_wait,&my_lock);
pthread_mutex_unlock(&my_lock);
У меня есть следующий фрагмент кода в потоке B, который сигнализирует поток A
pthread_mutex_lock(&my_lock);
testCondition = true;
pthread_cond_signal(&my_wait);
pthread_mutex_unlock(&my_lock);
Если нет других потоков, не имеет значения, если pthread_cond_signal(&my_wait)
перемещается из блока критического раздела, как показано ниже?
pthread_mutex_lock(&my_lock);
testCondition = true;
pthread_mutex_unlock(&my_lock);
pthread_cond_signal(&my_wait);