mirror of
https://github.com/shadps4-emu/ext-libusb.git
synced 2026-01-31 00:55:21 +01:00
9de0fefb31cd1bae4f7c7ab81962da86bbcf3b90
The logging function usbi_dbg() called from udev event thread needs to safely get the log level of the default context or the fallback context. This is not trivial because udev thread may log events while contexts are created and destroyed. Locking the default context mutex is not an option because usbi_dbg() may be called from code that already holds this mutex, which would lead to a deadlock. The solution implemented in this commit is to maintain a separate atomic global variable with the default debug level. The issue was found with ThreadSanitizer, although no actual bugs have been observed. libusb_set_debug() was also changed to call libusb_set_option() instead of doing its own option setting which had fewer checks. Closes #1332
libusb
libusb is a library for USB device access from Linux, macOS, Windows, OpenBSD/NetBSD, Haiku, Solaris userspace, and WebAssembly via WebUSB. 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
- Hans de Goede hdegoede@redhat.com
- Xiaofan Chen xiaofanc@gmail.com
- Ludovic Rousseau ludovic.rousseau@gmail.com
- Nathan Hjelm hjelmn@cs.unm.edu
- Chris Dickens christopher.a.dickens@gmail.com
(Please use the mailing list rather than mailing developers directly)
Description
⚠️ ARCHIVED: Original GitHub repository no longer exists. Preserved as backup on 2026-01-31T05:30:30.373Z
Languages
C
91.5%
C++
4.8%
M4
1.3%
Makefile
1.1%
CMake
0.6%
Other
0.6%