我想找一个可靠的方式(除了读取内核源代码)来检查给定的操作(或系统调用)是否是原子的(从另一个进程只能看到该操作之前或之后的状态)而不是在两者之间)在Linux上。这样做的目的是为了避免在内核已经为我执行某些操作时使用不必要的锁。如何在Linux上检查给定的操作(或系统调用)是否为原子操作?
到目前为止,我只能找到像this这个话题,这绝不是权威或者全面的资源。另外,Linux手册页包含的信息很少。例如,对于上面链接中提到的大多数函数,我在手册页中找不到有关它们的原子性的任何信息。
谁能告诉我,如果有一个标准或正式文件,提供这些信息?任何帮助将非常感激。
我不是Linux内核专家,但我怀疑存在这样的列表。而且你会发现,如果你明天处理你的代码,那么它会有什么帮助,但是从现在起12.43个月内发布的Linux 6.4会改变一些实现;突然你的锁不再需要;或者突然之间,你会需要一个...... – GhostCat