Skip to content

关于赋值语句是否具有原子性的讨论 #8449

Description

@FragrantRye

出发点是看到了在这个PR中的讨论,其中提到的 int32 数据赋值在对齐时本来就是原子的 与我印象中不符,于是查阅了一些资料与各位开发者分享,也希望听听大家的意见。

简单总结一下就是,C/C++中的“赋值”操作并不是原子的,不论从编译器实现上还是语言标准规定上皆是如此,而且变量的地址对齐与否并不影响该结论。
具体可以参考这篇文章 其中详细解释了引起非原子性的原因。

针对rt-thread中大量存在(maybe)的“直接赋值当成原子操作”的行为,是否有必要集中做一次修改?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions