Здравствуйте, Философ, Вы писали:
Ф>Здравствуйте, samius, Вы писали:
Ф>>>volatile в шарпе не генерирует никаких барьеров.
S>>Если так, то с помощью какоюй таблетки обеспечивается семантика, заявленная в спеке C# в общем случае, а не про Intel X86/X64?
Ф>с помощью Thread.VolatileRead() и Thread.VolatileWrite()
Разумеется, работа с volatile полями не приводит к задействованию этих методов. И, прямо в документации по предъявленным ссылкам, написано, что барьеры вставляются при необходимости.
S>>С оговорками про конкретную платформу — да. А вообще есть другие мнения. А так же указание полного барьера в методах VolatileRead/Write.
Ф>Фишка в том, что барьеры нужны там где они нужны: там где есть опасность перестановок — нужны, там где пофиг — не нужны.
А разве кто-то утверждал обратное? Что они не нужны там, где нужны и нужны там, где не нужны?