@jwrdegoede you are right about the previous patch being incorrect as you 
pointed here:

http://sourceforge.net/mailarchive/message.php?msg_id=31068411

I have just tried exiting the while when libusb_cancel_transfer() != 0. As you 
predicted, we can't use libusb_free_transfer() because it will cause 
corruption. The application crashes.

Then i've tried implementing your suggestion (1), that is: do not free the 
transfer in case both libusb_handle_events_completed and libusb_cancel_transfer 
have failed. I must say it worked quite nicely. I was able to receive an error 
code in my application and handled it. The usb device continues to work just 
fine.

Is it possible that this error condition somehow has already freed the 
transfer/urbs by itself? If i understand correctly op_cancel_transfer() from 
linux_usbfs.c the LIBUSB_ERROR_NOT_FOUND means that urbs == NULL!


---
Reply to this email directly or view it on GitHub:
https://github.com/libusbx/libusbx/issues/76#issuecomment-31684848
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to