[fpc-pascal] USB Human Interface Devices

Stefan V. Pantazi svpantazi at gmail.com
Fri Aug 23 16:54:29 CEST 2019


Thanks for pushing on this. I think any pending timeout/transfer must be 
explicitly canceled before closing the USB device, so that the thread 
can end gracefully.

The only way I see is to use something like

libusb_handle_events_timeout_completed	

http://libusb.sourceforge.net/api-1.0/group__poll.html#ga43e52b912a760b41a0cf8a4a472fbd5b


before closing the USB device context.

That function is not currently part of the libusbx and has a time_t 
parameter that appears C-specific but for some reason is not included in 
ctypes unit. But I am sure Pascal equivalents can be defined. I will do 
some tests to include the libusb_handle_events_timeout_completed in 
libusbx and libusbhid and let you know.



On 8/23/19 7:07 AM, James Richters wrote:
> Stefan ,
> Do you get the following errors when you exit your program?   Is there some way I should shut down the read thread so I don't get this error?  I've been using a timeout of 0
> 
> 
> libusb: error [do_close] Device handle closed while transfer was still being processed, but the device is still connected as far as we know
> libusb: error [do_close] A cancellation hasn't even been scheduled on the transfer for which the device is closing
> libusb: warning [libusb_exit] some libusb_devices were leaked
> Assertion failed!
> 
> Program: i:\programming\gcode\libusbxhid\whb04b-4_test.exe
> File: os/poll_windows.c, Line 145
> 
> Expression: fd != NULL
> Heap dump by heaptrc unit of i:\programming\gcode\libusbxhid\whb04b-4_test.exe
> 50 memory blocks allocated : 1782/1968
> 50 memory blocks freed     : 1782/1968
> 0 unfreed memory blocks : 0
> True heap size : 131072 (160 used in System startup)
> True free heap : 130912
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
> 

-- 
_______________________________________________________


More information about the fpc-pascal mailing list