global variable 'temp';
**threadA**
-pthread_mutex_lock-
if (temp == 'x')
-pthread_cond_wait-
do this
-pthread_mutex_unlock-
**threadB**
-pthread_mutex_lock-
if (someCondition == true)
temp = 'x'
-pthread_cond_signal-
-pthread_mutex_unlock-
В моем случае у меня может не быть никаких циклов, у меня просто есть условие if. Итак, я хочу, чтобы при temp == 'x', threadA должен сделать это/это.pthread_cond_wait без цикла while
- Является ли цикл обязательным при работе с
pthread_cond_wait
? - Каков другой способ для написания кода, если нам не нужны циклы?
- Это правильный способ написания кода?
* «Возможно возникновение ложных пробуждений из функций pthread_cond_timedwait() или pthread_cond_wait()». * Означает ли это, что пробуждения могут возникать без какой-либо причины автоматически? –
Да, это то, что говорит стандарт - конкретная реализация может выбрать более строгую семантику. – cmeerw