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@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


--
_______________________________________________________
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to