core: abandon sync transfers after libusb_close() This commit adds an additional check to synchronous transfer progression to prevent accessing a potentially deleted context. This access can occur if a code calls libusb_close() then libusb_exit() from one thread while another thread is in a synchronous transfer. Note that this is likely a user error. The application should wait for all transfers to complete before calling libusb_close(). This commit is being offered as a best-effort attempt to prevent the invalid access and return a useful error to the application. There may still be a window where an invalid access is possible. This commit is a work around until a better fix is available. References #610 Signed-off-by: Nathan Hjelm <hjelmn@google.com>
libusb is a library for USB device access from Linux, macOS, Windows, OpenBSD/NetBSD and Haiku userspace. It is written in C (Haiku backend in C++) and licensed under the GNU Lesser General Public License version 2.1 or, at your option, any later version (see COPYING).
libusb is abstracted internally in such a way that it can hopefully be ported to other operating systems. Please see the PORTING file for more information.
libusb homepage: http://libusb.info/
Developers will wish to consult the API documentation: http://api.libusb.info
Use the mailing list for questions, comments, etc: http://mailing-list.libusb.info
(Please use the mailing list rather than mailing developers directly)