Hello,
I've been running into the following Problem: I'm communicating using a USB
Handheld Barcode Scanner (USB HID Keyboard Device). Everything is fine, i've
opened the IN Endpoint using the UsbPipe and access it the following way:
currentDui = new DefaultUsbIrp(buffer);
currentDui = new DefaultUsbIrp(buffer);
currentDui.setAcceptShortPacket(true);
usbScannerPipe.syncSubmit(currentDui);
I receive the data i'm expecting and everything works fine UNTIL i want to
abort and cancel everything:
usbScannerPipe.abortAllSubmissions();
usbScannerPipe.close();
usbScannerPipe = null;
usbScannerInterface.release();
usbScannerInterface = null;
The problem is that syncSubmit immediately synchronizes using "submitLock"
(UsbPipeImp). After that the whole thing just keeps blocking while waiting
for data. When i call abortAllSubmissions from another Thread, it too locks
on "submitLock", waiting for the submitSync method to release this lock. IF
i scan another Barcode, the syncSubmit method returns and everything is
fine, otherwise it's a perfect deadlock.
What's the correct work-flow here? how can i cancel everything pending and
close the pipe and interface?
i'm using Ubuntu 10.04, and java-usb 1.0.1
Thanks in advance
Klaus Gradinger
------------------------------------------------------------------------------
The Next 800 Companies to Lead America's Growth: New Video Whitepaper
David G. Thomson, author of the best-selling book "Blueprint to a
Billion" shares his insights and actions to help propel your
business during the next growth cycle. Listen Now!
http://p.sf.net/sfu/SAP-dev2dev
_______________________________________________
javax-usb-devel mailing list
javax-usb-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/javax-usb-devel