是否有人尝试过将WaitForMultipleObjects驱动程序代码移植到Linux上,并尝试将windows API替换到Linux上。
可以用wait_event_interruptible替换WaitForSingleObject。
但是WaitForMultipleObjects呢..我在文章中看到他们正在使用pthread_cond_wait作为用户空间应用程序。linux内核空间的替代方案是什么..
谢谢你抽出时间来..
发布于 2018-09-26 12:50:43
您可以安排让表示事件的多个代码路径在同一等待队列上调用wake_up()。这等同于带有false WaitAll的WaitForMultipleObjects。
如何知道发生了哪个事件:一种可能是使用一个带有鲜为人知的“关键”参数的唤醒变体:wake_up_poll()及其朋友。参见linux/wait.h。"key“参数对于每个事件都应该是唯一的。然后,定制等待队列(类型为wait_queue_func_t)的唤醒处理函数。它接受四个参数;"key“是最后一个,未被默认处理程序使用。"Subclass“它,并使用"key”参数来识别谁已经被唤醒。
对于WaitAll=true,请一直等待,直到所有事件发生。
https://stackoverflow.com/questions/51815908
复制相似问题