iOS设备中的ARM处理器据报道不执行内存写入的排序。这意味着,如果一个处理器写入数据结构或数组,然后更新有效标记,另一个处理器在数据到达内存之前就可能看到更新的有效标记,因此读取垃圾数据。即使标志变量很小(原子大小)并且声明为易失性,也是如此。
有没有办法(在Swift或Objective C中)告诉Xcode编译一些ARM内存屏障指令、内置函数或等效调用,以保证数据被写入内存(对同一芯片上的其他处理器可见)在发出后续的有效标记更新之前?
这适用于实时代码,在实时回调中禁止获取锁定。
有没有办法(在Swift或Objective C中)告诉Xcode编译一些ARM内存屏障指令、内置函数或等效调用,以保证数据被写入内存(对同一芯片上的其他处理器可见)在发出后续的有效标记更新之前?
这适用于实时代码,在实时回调中禁止获取锁定。