我有一个算法可以在多个设备之间安排子任务来解决 main_task。它将内核排入所有命令队列并附加一个带有回调的事件。在此回调中,我检查我的 main_task 是否已完成,如果未完成,则将另一个子任务排入队列。否则,我将共享变量is_main_task_done
设置true
为通知其他命令队列它们应该停止对子任务进行排队。
同时,我必须以某种方式阻止主机的主线程退出,直到is_main_task_done
设置为true
. 有跨平台解决方案吗?到目前为止,我在 AMD 的指南中只找到了自旋锁解决方案:
while (!is_main_task_done)
sleep(0)
但它似乎仅适用于 Windows。