Я некоторое время использовал С# и недавно начал работать над добавлением parallelism к моему второму проекту. Итак, согласно Microsoft, читает и записывает в ints, и даже float являются атомарными
Я уверен, что эти требования к настройке на атомарность просто отлично подходят для x86-архитектур. Однако на таких архитектурах, как ARM (у которых может не быть аппаратной поддержки с плавающей запятой), кажется, что эти гарантии будут трудными.
Проблема только более значима из-за того, что "int" всегда 32 бит. Существует много встроенных устройств, которые не могут атомизировать 32-битную запись.
Кажется, это фундаментальная ошибка в С#. Гарантия атомарности этих типов данных не может быть выполнена портативно.
Как эти гарантии на атомарность предназначены для реализации на архитектурах, где нет FPU или 32-разрядных записей?