File tree Expand file tree Collapse file tree
src/hal/user_comps/xhc-whb04b-6 Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -444,6 +444,9 @@ void Usb::onUsbDataReceived(struct libusb_transfer* transfer)
444444{
445445 assert (mHal .isInitialized ());
446446
447+ // DO NOT call close from here, it is a callback from libusb
448+ // and will deadlock!!
449+
447450 int expectedPackageSize = static_cast <int >(sizeof (UsbInPackage));
448451 std::ios init (NULL );
449452 init.copyfmt (*verboseTxOut);
@@ -547,11 +550,15 @@ void Usb::onUsbDataReceived(struct libusb_transfer* transfer)
547550 transferFailed = true ;
548551 break ;
549552 }
550- // libusb_free_transfer(transfer);
551553}
552554// ----------------------------------------------------------------------
553555Usb::~Usb ()
554556{
557+ if (deviceHandle != nullptr ){
558+ close ();
559+ }
560+ libusb_free_transfer (inTransfer);
561+ libusb_free_transfer (outTransfer);
555562}
556563// ----------------------------------------------------------------------
557564void Usb::enableVerboseTx (bool enable)
You can’t perform that action at this time.
0 commit comments