如果complete_all()
會發生什麼叫做完成對象(從任務B)的任務A得到做完成對象wait_for_completion()
過嗎?是否有一些API可以在等待時立即找到對象並立即返回?一種方法可能是使用在發送消息之前鎖定的mutex
,並在等待之前解鎖。這個鎖需要在complete_all()
之前獲得,並在之後發佈,但是想知道是否有更清潔/更好的方法。任何想法都歡迎。完成目標的競爭條件
更多上下文:任務A初始化完成對象,發送給任務B的請求與完成對象的地址一起,然後等待完成。 任務B在獲取消息時執行一些處理,然後對完成對象執行complete_all()
。
內核已經處理這種情況afair。 – 2013-03-24 15:36:01