if (r < 0) {
if (r == LIBUSB_ERROR_INTERRUPTED)
continue;
- libusb_cancel_transfer(transfer);
- while (!completed)
- if (libusb_handle_events_completed(HANDLE_CTX(dev_handle), &completed) < 0)
- break;
+ if (libusb_cancel_transfer(transfer) == LIBUSB_SUCCESS) {
+ while (!completed)
+ if (libusb_handle_events_completed(HANDLE_CTX(dev_handle), &completed) < 0)
+ break;
+ }
libusb_free_transfer(transfer);
return r;
}
if (r < 0) {
if (r == LIBUSB_ERROR_INTERRUPTED)
continue;
- libusb_cancel_transfer(transfer);
- while (!completed)
- if (libusb_handle_events_completed(HANDLE_CTX(dev_handle), &completed) < 0)
- break;
+ if (libusb_cancel_transfer(transfer) == LIBUSB_SUCCESS) {
+ while (!completed)
+ if (libusb_handle_events_completed(HANDLE_CTX(dev_handle), &completed) < 0)
+ break;
+ }
libusb_free_transfer(transfer);
return r;
}