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

Reply via email to