如果complete_all()
会发生什么叫做完成对象(从任务B)的任务A得到做完成对象wait_for_completion()
过吗?是否有一些API可以在等待时立即找到对象并立即返回?一种方法可能是使用在发送消息之前锁定的mutex
,并在等待之前解锁。这个锁需要在complete_all()
之前获得,并在之后发布,但是想知道是否有更清洁/更好的方法。任何想法都欢迎。完成目标的竞争条件
更多上下文:任务A初始化完成对象,发送给任务B的请求与完成对象的地址一起,然后等待完成。 任务B在获取消息时执行一些处理,然后对完成对象执行complete_all()
。
内核已经处理这种情况afair。 – 2013-03-24 15:36:01