Информация об изменениях

Сообщение Re[4]: Volatile и предупреждение C5220 от 03.01.2022 14:01

Изменено 03.01.2022 14:03 σ

Re[4]: Volatile и предупреждение C5220
М>>>зачем понадобились 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
Re[4]: Volatile и предупреждение C5220
М>>>зачем понадобились 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