Browse Source

Fake the libusb transfer timed out message if we force cancel it with our own async functions.

Con Kolivas 12 years ago
parent
commit
375095645e
1 changed files with 4 additions and 2 deletions
  1. 4 2
      usbutils.c

+ 4 - 2
usbutils.c

@@ -2242,9 +2242,11 @@ static int callback_wait(struct usb_transfer *ut, int *transferred, unsigned int
 	if (ret) {
 		libusb_cancel_transfer(ut->transfer);
 		pthread_cond_wait(&ut->cond, &ut->mutex);
-	}
+		/* Fake the timed out message since it's effectively that */
+		ret = LIBUSB_TRANSFER_TIMED_OUT;
+	} else
+		ret = ut->transfer->status;
 	/* No need to sort out mutexes here since they won't be reused */
-	ret = ut->transfer->status;
 	*transferred = ut->transfer->actual_length;
 	libusb_free_transfer(ut->transfer);