Why do you need a while loop while waiting for a condition variable

后端 未结 3 1638
囚心锁ツ
囚心锁ツ 2020-12-13 02:37

Say you have this code

pthread_mutex_lock(&cam->video_lock);
while(cam->status == WAIT_DISPLAY) // <-- Why is this a \'while\' and not an \'if\'         


        
3条回答
  •  再見小時候
    2020-12-13 03:15

    It is recommended that all threads check the condition after returning from pthread_cond_wait because there are several reasons the condition might not be true. One of these reasons is a spurious wakeup; that is, a thread might get woken up even though no thread signalled the condition.

    Source : Spurious wakeup

提交回复
热议问题