diff options
-rw-r--r-- | libusb/os/sunos_usb.c | 8 | ||||
-rw-r--r-- | libusb/version_nano.h | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/libusb/os/sunos_usb.c b/libusb/os/sunos_usb.c index 70e1383..ecd4aad 100644 --- a/libusb/os/sunos_usb.c +++ b/libusb/os/sunos_usb.c @@ -1360,9 +1360,15 @@ solaris_submit_ctrl_on_default(struct libusb_transfer *transfer) } usbi_dbg("Done: ctrl data bytes %d", ret); - /* sync transfer handling */ + /** + * Sync transfer handling. + * We should release transfer lock here and later get it back + * as usbi_handle_transfer_completion() takes its own transfer lock. + */ + usbi_mutex_unlock(&LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer)->lock); ret = usbi_handle_transfer_completion(LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer), transfer->status); + usbi_mutex_lock(&LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer)->lock); return (ret); } diff --git a/libusb/version_nano.h b/libusb/version_nano.h index d108305..13ff675 100644 --- a/libusb/version_nano.h +++ b/libusb/version_nano.h @@ -1 +1 @@ -#define LIBUSB_NANO 11353 +#define LIBUSB_NANO 11354 |