Можно ли объединить атомарные загрузки в модели памяти C++?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Можно ли объединить атомарные загрузки в модели памяти C++?

Сообщение Anonymous »

Рассмотрим приведенный ниже фрагмент C++ 11. Для GCC и clang это компилируется в две (последовательно согласованные) загрузки foo. (Примечание редактора: компиляторы не оптимизируют атомарность, более подробную информацию см. в разделе «Вопросы и ответы», особенно в http://wg21.link/n4455, где обсуждаются стандарты, посвященные проблемам, которые это может создать и которые стандарт не дает программистам инструментов для обхода. Этот язык Вопросы и ответы -lawyer касаются текущего стандарта, а не того, что делают компиляторы.)

Позволяет ли модель памяти C++ компилятору объединять эти две нагрузки в одну загрузку и использовать одно и то же значение для x и y?

(Примечание редактора: над этим работает группа по стандартизации: http:// wg21.link/n4455 и http://wg21.link/p0062 Текущий стандарт на бумаге допускает нежелательное поведение.)



Я думаю, что нельзя объединить эти загружается, потому что это означает, что опрос атома больше не работает, но я не могу найти соответствующую часть в документации по модели памяти.

#include
#include

std::atomic foo;

int main(int argc, char **argv)
{
int x = foo;
int y = foo;

printf("%d %d\n", x, y);
return 0;
}


Подробнее здесь: https://stackoverflow.com/questions/331 ... mory-model
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Требуют ли атомарные операции поддержки со стороны оборудования?
    Гость » » в форуме C++
    0 Ответы
    38 Просмотры
    Последнее сообщение Гость
  • Есть ли способ выполнить атомарные операции над неатомарным объектом? [дубликат]
    Гость » » в форуме C++
    0 Ответы
    24 Просмотры
    Последнее сообщение Гость
  • Как внести атомарные изменения во многие контексты БД?
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как реализовать атомарные обновления с откатом в Python?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Атомарные операции над `unique_ptr`
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»