LINUX.ORG.RU

История изменений

Исправление im-0, (текущая версия) :

То есть указатели всегда атомарные даже без дополнительных инклудов и atomic?

Тут вопрос в том, что конкретно понимается под «atomic».

Операции над интами и указателями будут атомарными в том смысле, что при любом чтении из переменной, будет получаться либо целиком старое значение, либо целиком новое.

Но при этом, явно заданные атомарные типы могут обладать другими свойствами в зависимости от платформы и компилятора. Например, gcc и clang не пытаются делать некоторые оптимизации операций над атомиками, в этом они похожи на volatile (но не обязаны обладать всеми свойствами volatile). На x86/x86_64 операции над атомиками являются барьером.

Исправление im-0, :

То есть указатели всегда атомарные даже без дополнительных инклудов и atomic?

Тут вопрос в том, что конкретно понимается под «atomic».

Операции над интами и указателями будут атомарными в том смысле, что при любом чтении из переменной, будет получаться либо целиком старое значение, либо целиком новое.

Но при этом, явно заданные атомарные типы могут обладать другими свойствами в зависимости от платформы и компилятора. Например, gcc и clang не пытаются делать некоторые оптимизации операций над атомиками, в этом они похожи на volatile. На x86/x86_64 операции над атомиками являются барьером.

Исправление im-0, :

То есть указатели всегда атомарные даже без дополнительных инклудов и atomic?

Тут вопрос в том, что конкретно понимается под «atomic».

Операции над интами и указателями будут атомарными в том смысле, что при любом чтении из переменной, будет получаться либо целиком старое значение, либо целиком новое.

Но при этом, явно заданные атомарные типы могут обладать другими свойствами в зависимости от платформы и компилятора. Например, gcc и clang не пытаются оптимизировать операции над атомиками, в этом они похожи на volatile. На x86/x86_64 операции над атомиками являются барьером.

Исходная версия im-0, :

То есть указатели всегда атомарные даже без дополнительных инклудов и atomic?

Тут вопрос в том, что конкретно понимается под «atomic».

Операции над интами и указателями будут атомарными в том смысле, что при любом чтении из переменной, будет получаться либо целиком старое значение, либо целиком новое.

Но при этом, явно заданные атомарные типы могут обладать другими свойствами в зависимости от платформы и компилятора. Например gcc и clang не пытаются оптимизировать операции над атомиками, в этом они похожи на volatile. На x86/x86_64 операции над атомиками являются барьером.