pthread_cond_wait déverrouille atomiquement le mutex
(comme pthread_unlock_mutex) et attend que la variable
condition cond soit signalée. L'exécution du thread est
suspendu et ne consomme pas de temps CPU jusqu'à ce que la
variable condition soit signalée. Le mutex doit être ver*
rouillé par le thread appelant à l'entrée de
pthread_cond_wait. Avant de rendre la main au thread
appelant, pthread_cond_wait reverrouille mutex (comme
pthread_lock_mutex).
Déverrouiller le mutex et suspendre l'exécution sur la
variable condition est effectué atomiquement. Donc, si
tous les threads verrouillent le mutex avant de signaler
la condition, il est garanti que la condition ne peut être
signalée (et donc ignorée) entre le moment où un thread
verrouille le mutex et le moment où il attend sur la vari*
able condition.
Partager