Je lis sur pthread.h
; les fonctions liées à la variable de condition (comme pthread_cond_wait(3)
) nécessitent un mutex comme argument. Pourquoi? Autant que je sache, je vais créer un mutex juste pour l'utiliser comme argument? Qu'est-ce que ce mutex est censé faire?
Réponse
Trop de publicités?
Amber
Points
159296
Le mutex est censé être verrouillé lorsque vous appelez pthread_cond_wait
; quand vous l'appelez, il déverrouille de manière atomique le mutex et bloque la condition. Une fois que la condition est signalée, elle la verrouille à nouveau et revient.
Cela permet la mise en œuvre d'une planification prévisible si nécessaire, dans la mesure où le thread qui ferait la signalisation peut attendre que le mutex soit libéré pour effectuer son traitement, puis signaler la condition.