Re[4]: Volatile и предупреждение C5220
От: σ  
Дата: 03.01.22 14:01
Оценка: 17 (2) +1
М>>>зачем понадобились volatile-переменные?

ЕМ>>Для реализации некоторых легковесных методов синхронизации. Например, там, где циклически выполняется группа операций, и этот цикл нужно останавливать по внешнему сигналу. Использовать там средства ОС избыточно — по уши хватит и volatile-переменных.


fk0> OMG! Полярный песец!


fk0> Volatile не является барьером. Не атомарно. И из него никаких толком алгоритмов не построить, даже

fk0>алгоритм Петерсона требует чтоб число записывалось за один раз, атомарно.

fk0> И самое поганое, запись в volatile-переменные не упорядочена по сравнению с другими обращениями

fk0>к памяти.

В MSVC по-умолчанию доступ к volatile-объектам имеет acquire-release семантику https://docs.microsoft.com/en-us/cpp/cpp/volatile-cpp?view=msvc-170#end-of-iso-conformant
Отредактировано 03.01.2022 14:03 σ . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.