【发布时间】:2013-03-24 06:18:25
【问题描述】:
如果在 task A 开始对完成对象执行 wait_for_completion() 之前在完成对象(来自 task B)上调用 complete_all() 会发生什么?是否有一些 API 可以查找对象在等待时是否已经完成并立即返回?一种方法是使用mutex,它在发送消息之前被锁定,在等待之前被解锁。该锁需要在complete_all() 之前获取并在之后释放,但想知道是否有更清洁/更好的方法。欢迎任何想法。
更多上下文: task A 初始化完成对象,向task B 发送请求以及完成对象的地址,然后等待完成。 任务 B 在收到消息时进行一些处理,然后在完成对象上执行 complete_all()。
【问题讨论】:
-
内核已经妥善处理了这种情况。
标签: linux-kernel