Ich verwende Posix Message Queues unter Linux. Grundsätzlich habe ich mehrere Threads, die Nachrichten von der gleichen Warteschlange durch Aufrufe von mq_timedreceive
empfangen.
Wenn mehr als ein Thread gleichzeitig läuft und die Warteschlange nicht leer ist, ist garantiert, dass eine Nachricht nicht mehr als einmal empfangen wird (d.h. die Nachricht wird nicht an mehrere Threads übermittelt)?
Um sicher zu gehen, könnte ich den Empfang mit einem Mutex synchronisieren, aber ich würde gerne dieses Sperren vermeiden, wenn möglich. Ich habe alle Man-Pages gelesen (man mq_overview(3)
), aber nichts Explizites gefunden.
Im Voraus vielen Dank.