Здравствуйте, Максим, Вы писали:
М>Другими словами, можно ожидать, что компилятор просто так не выкинет volatile объекты, но нельзя расчитывать, что значения какой-то конкретной пременной в коде (например флага, котрый используется для остановки цикла) будут одинаковы для разных cpu.
Эти рассуждения годятся для программирования на C++ в стиле каких-нибудь Python или JS, где программа имеет дело с абстрактной виртуальной средой. Я программирую не для сферического железа в вакууме, в расчете на гипотетические платформы, а для вполне конкретного. Поэтому мне интересно, в каких конкретно случаях "нельзя рассчитывать", и почему. Вам известны такие сценарии?
М>Вы в ядре программируете? Там ведь свой набор примитивов синхронизации.
Не вижу смысла дергать примитивы, когда можно обойтись без них.