Quoting POSIX:Peut-on supposer que `pthread_cond_signal` réveillera atomiquement le thread signalé en ce qui concerne la liaison mutex à la variable de condition?
Les fonctions
pthread_cond_broadcast()
oupthread_cond_signal()
peuvent être appelés par un fil ou non elle possède actuellement le mutex que les threads appelantpthread_cond_wait()
oupthread_cond_timedwait()
sont associés à la variable de condition pendant leur temps d'attente; Toutefois, si un comportement de planification prévisible est requis, ce mutex doit être verrouillé par le thread appelantpthread_cond_broadcast()
oupthread_cond_signal()
.
"Si un comportement de planification prévisible est requis". Cela pourrait indiquer que verrouiller le mutex lié à la variable de condition juste avant d'appeler pthread_cond_signal()
devrait garantir que le thread signalé sera réveillé avant que tout autre thread ne parvienne à verrouiller ce mutex. Est-ce correct?
Je recommande la page de manuel officielle de Linux ici: http://man7.org/linux/man-pages/man3/pthread_cond_signal.3p.html – alk