wyjaśnienia dotyczące barier pełnej pamięci związanych z muteksami pthread

Słyszałem, że gdy mamy do czynienia z muteksami, niezbędne bariery pamięci są obsługiwane przez sam interfejs API pthread. Chciałbym uzyskać więcej szczegółów na ten temat.

Czy te twierdzenia są prawdziwe, przynajmniej na najbardziej popularnych architekturach?Czy kompilator rozpoznaje tę ukrytą barierę i unika zmiany kolejności operacji / odczytu z rejestrów lokalnych podczas generowania kodu?Kiedy stosowana jest bariera pamięci: po pomyślnym uzyskaniu muteksu AND po jego zwolnieniu?

questionAnswers(1)

yourAnswerToTheQuestion