[当我在新工作站上重新编译FUSE文件系统时,我注意到有关readdir_r
的弃用警告。由于readdir
不是MT Safe,并且需要自己进行同步,所以我有些困惑。
我不确定MT Safe到底不是什么-仅是readdir
还是整个读取特定目录的整个过程?似乎标准试图通过指出readdir
如果在不同的目录中被调用为MT安全来证明这一决定的合理性,但是如果您的“程序”是多用户覆盖FUSE文件系统,则显然不是安全的假设。因此,我应该将整个目录读取过程放在关键部分还是仅在单个readdir
调用中放置?
老实说,从性能的角度来看,这两种情况对我来说都非常糟糕-我的担忧是否正确?或者Linux内核中是否存在其他瓶颈,使得无论如何都无法通过多个进程/线程对单个目录执行并行读取?] >
[当我在新工作站上重新编译FUSE文件系统时,我注意到有关readdir_r的弃用警告。由于readdir不是MT Safe,并且需要自己进行同步,因此我有些困惑。我是...
在当前POSIX.1规范(POSIX.1-2008)中,readdir(3)为不需要是线程安全的。但是,在现代实现(包括glibc实现),并发调用readdir(3)来指定不同的目录流是线程安全的。