Здравствуйте, tripol, Вы писали:
T>Вполне может прооптимизировать такой код:
T>T> while(!a.get_a()) // здесь может заинлайнить и без volatile цикл не выйдет
T>
Согласен, хотя к проблеме, поднятой топикстартером, это мало относится. И, кстати, InterlockedExchange заодно уж и эту опасность устранит.
T>И вообще рекомендуется применять volatile для таких случаев всегда независимо от того,
T>заоптимизирует данный компилятор или нет.
Ну, это смотря что считать "таким случаем". Можно и производительность нафиг загробить. Если в общем рассуждать, лучше доступ ко всему объекту из разных потоков грамотно организовывать, а не на уровне отдельных членов.