hughsie / libgusb

GUsb is a GObject wrapper for libusb1
GNU Lesser General Public License v2.1
25 stars 21 forks source link

Optionally use GUsbSource on Linux to avoid threading issues #83

Open hughsie opened 2 years ago

hughsie commented 2 years ago

Having two threads interact is causing difficult to debug deadlocks. Just use libusb_set_pollfd_notifiers() and use the locking in libusb_handle_events().

By default use a thread to avoid breaking other projects like fprintd that expect to be able to manually process the default GMainContext.

nacho commented 2 years ago

Why Optionally? (I have not checked yet the patch though)

hughsie commented 2 years ago

@nacho fprintd is doing some quite unusual things to the GMainContext, which seems to break when we're not processing the events in a thread -- i wrote an email about it here: https://sourceforge.net/p/libusb/mailman/libusb-devel/thread/CAD2FfiHXhwiC9Sd-jEJ2KM6z4FNp%3D3oF8-saO52bp15fDU2hyQ%40mail.gmail.com/#msg37720874 -- it looks like @benzea replied already!