我有一个数据采集线程,可以连续处理以前作为典型异步传输提交的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内部的一些僵局。知道怎么克服这个吗?