在iOS上复制原始类型是原子的吗?

时间:2014-08-18 12:32:42

标签: ios objective-c properties arm atomic

我即将在iOS上的Objective-C中为原子属性实现自定义getter和setter。我不确定复制基元类型(如char, short, int, long, long long, float, double, long double)是否保证在iOS平台和ARM架构上是原子的。

在分配变量或从方法原子操作返回时复制原始值吗?

1 个答案:

答案 0 :(得分:1)

如果iOS设备在32位ARM体系结构上运行,那么任何64位访问都非原子

这使得long longdouble在32位ARM设备上访问不是原子的。

Afaik Objective-C不支持long double类型。

您可以比较Linux体系结构的ARM体系结构,以获取更多信息和想法:

https://github.com/torvalds/linux/blob/master/arch/arm/include/asm/atomic.h

https://github.com/torvalds/linux/blob/master/arch/arm64/include/asm/atomic.h