этот ответ
pthread_cond_broadcast()
или жеpthread_cond_signal()
функции могут вызываться потоком независимо от того, владеет ли он в настоящее время мьютексом, вызываемым потокомpthread_cond_wait()
или жеpthread_cond_timedwait()
связать с условной переменной во время их ожидания; однако, если требуется предсказуемое поведение планирования, этот мьютекс должен быть заблокирован потоком, вызывающимpthread_cond_broadcast()
или жеpthread_cond_signal()
.
Msgstr "Если требуется предсказуемое поведение при планировании". Это может / намекает на то, что блокировка мьютекса, связанного с условной переменной, перед вызовомpthread_cond_signal()
должен гарантировать, что сигнальный поток будет разбужен до того, как любому другому потоку удастся заблокировать этот мьютекс. Это правильно?