执行USB控制传输,同时使用libusb处理事件

时间:2018-06-08 14:24:34

标签: asynchronous io callback deadlock libusb

我有一个数据采集线程,可以连续处理以前作为典型异步传输提交的USB事件。每次传输注册的回调应该能够根据传输中传输的数据直接配置USB设备。我试图通过在回调函数中直接调用的同步控制传输来实现这一点。 E.g:

void callback(transfer) {
  process(transfer->buffer);
  libusb_control_transfer(...);
}

int main() {
  libusb_transfer* transfer;
  transfer->callback = &callback;
  libusb_submit_transfer(transfer);
  while (1) {
    libusb_handle_events_timeout(...);
  }
}  

然而,这似乎导致了libusb内部的一些僵局。知道怎么克服这个吗?

0 个答案:

没有答案