-
- Ну вроде как если речь про глобальную переменную, то компиляторы оптимизируют доступ к ним с некоторой долей осторожности. А вот если локальная - то да, держите семеро, уж лучше рассталять барьеры памяти (хотя некоторые языки говорят, будто char* lloyd(26 знак., 23.05.2018 19:26)
- Неееее, я именно про барьерные инструкции проца в их аппаратном смысле. С компилятором действительно договориться проще, volatile, char*... Проблема именно в том, что инфа о том, когда сам камень может переставить команды -- весьма противоречива. - Николай Коровин(23.05.2018 19:34)
- Уже миллион раз обсуждали, не хочется повторяться. volatile и memory barrier -- оба нужны, у них разный ортогональный смысл. Компилятор имеет право всё переупорядочить, в память не писать, а кешировать в регистрах, и вообще вытворять всё что fk0(1761 знак., 24.05.2018 00:35)
- Про компилёр я и не спрашивал, это просто по привычке с темы съехали (именно что миллион раз). Я про mfence, lfence и sfence. Ну, и про префикс lock. Инструкции, да. Николай Коровин(708 знак., 26.05.2018 00:25)
- Короче, яйцеголовые запутались в показаниях. Что-то в Датском королевстве прогнило. Всё не так и всё не то. Где гений, когда он так нужен? - SciFi(24.05.2018 00:40)
- Тут как раз все просто - если переменная не volatile, нет барьеров памяти и прочего - то перестановка (и даже само выполнение) операций - лишь вопрос времени. lloyd(473 знак., 23.05.2018 19:45)
- Уже миллион раз обсуждали, не хочется повторяться. volatile и memory barrier -- оба нужны, у них разный ортогональный смысл. Компилятор имеет право всё переупорядочить, в память не писать, а кешировать в регистрах, и вообще вытворять всё что fk0(1761 знак., 24.05.2018 00:35)
- Неееее, я именно про барьерные инструкции проца в их аппаратном смысле. С компилятором действительно договориться проще, volatile, char*... Проблема именно в том, что инфа о том, когда сам камень может переставить команды -- весьма противоречива. - Николай Коровин(23.05.2018 19:34)
- Ну вроде как если речь про глобальную переменную, то компиляторы оптимизируют доступ к ним с некоторой долей осторожности. А вот если локальная - то да, держите семеро, уж лучше рассталять барьеры памяти (хотя некоторые языки говорят, будто char* lloyd(26 знак., 23.05.2018 19:26)