summaryrefslogtreecommitdiff
path: root/libusb/sync.c
diff options
context:
space:
mode:
Diffstat (limited to 'libusb/sync.c')
-rw-r--r--libusb/sync.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libusb/sync.c b/libusb/sync.c
index 92e7833..72cbcf2 100644
--- a/libusb/sync.c
+++ b/libusb/sync.c
@@ -104,6 +104,8 @@ API_EXPORTED int libusb_control_transfer(libusb_device_handle *dev_handle,
while (!completed) {
r = libusb_handle_events(HANDLE_CTX(dev_handle));
if (r < 0) {
+ if (r == LIBUSB_ERROR_INTERRUPTED)
+ continue;
libusb_cancel_transfer(transfer);
while (!completed)
if (libusb_handle_events(HANDLE_CTX(dev_handle)) < 0)
@@ -172,6 +174,8 @@ static int do_sync_bulk_transfer(struct libusb_device_handle *dev_handle,
while (!completed) {
r = libusb_handle_events(HANDLE_CTX(dev_handle));
if (r < 0) {
+ if (r == LIBUSB_ERROR_INTERRUPTED)
+ continue;
libusb_cancel_transfer(transfer);
while (!completed)
if (libusb_handle_events(HANDLE_CTX(dev_handle)) < 0)