Не доверяйте комбинации вашего оборудования/компилятора
Причина
Низкоуровневые аппаратные интерфейсы, используемые программированием без блокировок, - одни из самых трудно реализуемых и одни из областей, где возникают наиболее тонкие проблемы переносимости. Если вы занимаетесь программированием без блокировок для производительности, вам нужно проверить регрессию.
Примечание
Переупорядочение инструкций (статическое и динамическое) затрудняет нам эффективное мышление на этом уровне (особенно если вы используете расслабленные модели памяти). Опыт, (полу)формальные модели и проверка моделей могут быть полезны. Тестирование - часто в экстремальной степени - является необходимым. "Не летай слишком близко к солнцу."
Применение
Обладают сильные правила для повторного тестирования, которые охватывают любое изменение аппаратного обеспечения, операционной системы, компилятора и библиотек.