Hi,
This is the exact same problem I am experiencing in my app. I am very much
in favor of this change.
Regards,
Chris
On Thursday, July 4, 2013, Hans de Goede wrote:
> Hi All,
>
> So to make sure the API is sane, and to give the hotplug stuff some extra
> testing, I've ported Spice's usbredir code over to it.
>
> And everything worked in one go, until I tried to exit the spice client, at
> which point it hangs.
>
> The problem is that the spice usbredir code uses a thread which does:
>
> while(usb_event_thread_run)
> libusb_handle_events();
>
> This thread used to get started on the first libusb_open() and stopped like
> this:
>
> usb_event_thread_run = 0;
> libusb_close(handle); /* wakes up libusb_handle_events() */
> pthread_join(usb_event_thread);
>
> When closing the last device handle.
>
> But with libusb handling the hotplug, it is simply always running, until
> the
> app exits. So now we need a way to wakeup libusb_handle_events() on exit.
>
> I've considered adding a new libusb API call for this, but in the end I
> thought
> it made more sense to do the wakeup from
> libusb_hotplug_deregister_callback(),
> esp. since libusb_hotplug_deregister_callback() depends on
> libusb_handle_events
> to run atleast once to complete the deregister. So that is what this
> patch-set
> does.
>
> So now for an app using hotplug + an event thread, the exit code would look
> something like this:
>
> usb_event_thread_run = 0;
> libusb_hotplug_deregister_callback(ctx, hotplug_cb_handle);
> pthread_join(usb_event_thread);
> libusb_exit(ctx);
>
> Given that without this patch the hotplug API is essentially unusable for
> applications with a separate event thread, I believe we should add this to
> 1.0.16.
>
> It is not terribly adventurous, but I think it would be best to also do an
> 1.0.16rc3 with this in, and delay the actual release by a few days.
>
> If I can get an ack for this by tomorrow, I can do 1.0.16rc3 tomorrow, so
> people can test over the weekend.
>
> Regards,
>
> Hans
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by Windows:
>
> Build for Windows Store.
>
> http://p.sf.net/sfu/windows-dev2dev
> _______________________________________________
> libusbx-devel mailing list
> libusbx-devel@lists.sourceforge.net <javascript:;>
> https://lists.sourceforge.net/lists/listinfo/libusbx-devel
>
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel