内核数据结构 klist 是否提供线程安全访问?
klist.h 中描述的链表包装器是否提供对其节点的线程安全访问以进行读取和写入?
Does the linked list wrapper described in klist.h provide threadsafe access to its nodes for both reading and writing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为“阅读和写作”实际上是指“交互和添加/删除”(我们正在谈论列表,对吧?)。
从这个意义上说,它们是线程安全的:您不必对它们执行手动锁定,因为 lib/klist.c 中定义的函数使用 klist 结构的内部自旋锁。
如果是中断或下半上下文,请不要使用这些函数,因为它们内部完成的锁定不
spin_lock_irqsave()
或spin_lock_bh()
。I assume that by "reading and writing" you actually mean "interating and adding/removing" (we're talking about lists, right?).
In this sense they are thread-safe: you do not have to perform manual locking on them because the functions defined in
lib/klist.c
use the internal spinlock of the klist structure.Do not use these functions if interrupt or bottom half context, because the locking done inside them is not
spin_lock_irqsave()
orspin_lock_bh()
.