首页 > 解决方案 > 回调是否序列化到 DriverKit 驱动程序?

问题描述

我需要同时在批量、中断同步端点上排队进出请求。我可以期望来自这些请求的所有回调都一一到来吗?或者可以同时期待多个回调?

标签: multithreadingdriverkitmacos-system-extension

解决方案


它们应该依次进入为相关处理函数设置的调度队列中。

因此,如果您将所有处理函数设置到同一个队列,它们将一个接一个地进入同一个线程。这也是默认情况下发生的情况,这会将它们留在默认队列中,即kIOServiceDefaultQueueName.

DriverKitIODispatchQueue目前始终是串行的,因此一次只能在一个线程上运行。(这与dispatch_queue_t存在并发变体的常规用户空间 GCD 调度队列不同。)

至少,这是我目前的理解和经验。


推荐阅读