Ah ? Tu as renoncé plutôt que de chercher et trouver ? Donne ton code entier et je suis certain qu'on trouve l'erreur en moins de deux...
Un sémaphore sert à protéger une ressource unique de plusieurs accès concurrents. Comme par exemple plusieurs processus qui viendraient écrire au même endroit dans une share mémory.
Une file de message peut-être vu comme une ressource unique vu qu'un message lu y disparait. Donc il vaut mieux être certain que ce soit la bonne personne qui lise le message. Toutefois on peut attribuer des étiquettes aux messages et donc demander à une personne de ne lire que les messages ayant telle étiquette et dans ce cas le sémaphore devient inutile...
Ben oui (sous-entendu que la simultanéïté parfaite n'existe pas et donc il y aura forcément l'un des deux qui passera avant l'autre)...