> Accessing an object designated by a volatile lvalue (_basic.lval_), modifying an object
Ну и где там "modifying an object"? Я всего лишь читаю(!) неволатальную переменную в цикле -- и где же в стандарте написано, что эти чтения должны как-то сериализоваться? ;-)
> из этого как бы вытекает необходимость в расширениях типа asm volatile("" ::: "memory"); или _ReadWriteBarrier()
Разумеется, стандартный С++ был плохо приспособлен к мультитреду и нуждался в подобных расширениях. А что, ты полагал, что я как-то это вижу иначе?
no subject
Date: 2011-11-13 05:15 pm (UTC)> Accessing an object designated by a volatile lvalue (_basic.lval_), modifying an object
Ну и где там "modifying an object"? Я всего лишь читаю(!) неволатальную переменную в цикле -- и где же в стандарте написано, что эти чтения должны как-то сериализоваться? ;-)
> из этого как бы вытекает необходимость в расширениях типа asm volatile("" ::: "memory"); или _ReadWriteBarrier()
Разумеется, стандартный С++ был плохо приспособлен к мультитреду и нуждался в подобных расширениях. А что, ты полагал, что я как-то это вижу иначе?