ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้
-
- Прыжки видел тыщу раз, потому что все проекты на высшей оптимизации. Но ни разу не видел ошибок из-за изменения порядка. Ты придумал хреновое объяснение для втыркивания volatile. - VL(17.03.2016 21:48,
)
- Ошибок не было, должно быть, потому, что ты таки ставишь volatile там, где оно надо. Такшта норамальное объяснение, пеши исчо :-) - SciFi(18.03.2016 08:40)
- не могу понять - то ли доброе слово сказал, то ли нахрен послал :) Но тебя куда-то не туда несет - с разными строками проблем быть не может, компилятор разруливает это без всяких volatile. - VL(18.03.2016 11:10,
)
- Нет, не так. Может переставлять, ему разрешено (если volatile там нет). Лень копаться в дизассемблере, чтобы пример привести. Вот тебе с просторов тырнета --> - SciFi(18.03.2016 11:23 - 11:27, ссылка)
- Угу, интересно. Только нужно здраво обозначить угрозу и простые способы решения. Флаги обновления обычно ставятся в прерываниях, в основном цикле будет пофиг, в какой последовательности что ставилось. Volatile нужен, чтобы вообще флаг прочитался. VL(185 знак., 18.03.2016 12:44,
)
- Я уже утомился тебе что-либо доказывать. Доказывай сам :-) - SciFi(18.03.2016 12:49)
- Повторюсь, но и при наличии volatile операции в функции могут быть переставлены если результат на выходе функции такой же получается. - fk0(18.03.2016 11:24)
- Это уже сектантство какое-то. Откуда дровишки? Как компилятор может знать, что "результат такой же"? Может быть, чьи-то шаловливые ручки накрутили зависимостей снаружи неочевидным образом? - SciFi(18.03.2016 11:29)
- Ссылку я тебе уже давал. Не знаю какой стандарт об этом говорит, но синхронизация обращений к памяти производится далеко не всегда, а только при вызове функций и ещё когда-то. В теле функции синхронизации никто не обещает. Далее, стандарт C fk0(497 знак., 18.03.2016 13:04, ссылка)
- Ты рассказываешь про sequence points штоле? Коли так, имей в виду, они не только на входе в функцию, но и ещё в 100500 местах: SciFi(1103 знак., 18.03.2016 13:28)
- Ссылку я тебе уже давал. Не знаю какой стандарт об этом говорит, но синхронизация обращений к памяти производится далеко не всегда, а только при вызове функций и ещё когда-то. В теле функции синхронизации никто не обещает. Далее, стандарт C fk0(497 знак., 18.03.2016 13:04, ссылка)
- Это уже сектантство какое-то. Откуда дровишки? Как компилятор может знать, что "результат такой же"? Может быть, чьи-то шаловливые ручки накрутили зависимостей снаружи неочевидным образом? - SciFi(18.03.2016 11:29)
- Угу, интересно. Только нужно здраво обозначить угрозу и простые способы решения. Флаги обновления обычно ставятся в прерываниях, в основном цикле будет пофиг, в какой последовательности что ставилось. Volatile нужен, чтобы вообще флаг прочитался. VL(185 знак., 18.03.2016 12:44,
- Нет, не так. Может переставлять, ему разрешено (если volatile там нет). Лень копаться в дизассемблере, чтобы пример привести. Вот тебе с просторов тырнета --> - SciFi(18.03.2016 11:23 - 11:27, ссылка)
- не могу понять - то ли доброе слово сказал, то ли нахрен послал :) Но тебя куда-то не туда несет - с разными строками проблем быть не может, компилятор разруливает это без всяких volatile. - VL(18.03.2016 11:10,
- Ошибок не было, должно быть, потому, что ты таки ставишь volatile там, где оно надо. Такшта норамальное объяснение, пеши исчо :-) - SciFi(18.03.2016 08:40)
- Прыжки видел тыщу раз, потому что все проекты на высшей оптимизации. Но ни разу не видел ошибок из-за изменения порядка. Ты придумал хреновое объяснение для втыркивания volatile. - VL(17.03.2016 21:48,