Kann man auf eine boost :: condition_variable "warten", ohne zuerst eine Mutex-Sperre zu erhalten? Kann das nicht mit der pthread lib direkt gemacht werden?boost :: condition_variable warte ohne Sperre
Der Einfachheit halber möchte ich vermeiden, direkt auf die OS-Ebene (wie Futex auf Linux) zu gehen. Aber ich will auch nicht den Overhead des Mutex Calls.
Ich bin mir der Race-Bedingungen unter normalen Umständen ziemlich bewusst. Ich habe das auf andere Weise abgedeckt.
Wenn Sie sich das Nutzungsmuster von boost :: condition_variable ansehen, macht es keinen Sinn, es zu sein ohne Mutex verwendet. Bei der Eingabe entsperrt die wait -Methode automatisch den Mutex und fügt den Thread einer Warteschlange hinzu und sperrt später den Mutex, wenn dieser zurückkommt :) –