Hi, On 07/17/2013 09:25 PM, Chris Dickens wrote: > Hi, > > I have identified the problem. When libusb_exit() is called, the linux > backend will acquire the linux_hotplug_lock before calling > linux_stop_event_monitor(). In this user's particular case, it looks like the > event monitor thread is seeing activity from udev and then tries to acquire > the linux_hotplug_lock, blocking because the lock was taken by the backend. > In linux_udev_stop_monitor(), pthread_cancel() is called to cancel the event > monitor thread, however pthread_mutex_lock() is not a cancellation point. > Therefore there is deadlock when pthread_join() is called.
Good work, bonus points if you can also come-up with a solution :) Regards, Hans ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ libusbx-devel mailing list libusbx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusbx-devel