On May 24, 2013, at 10:37 AM, Hans de Goede <hdego...@redhat.com> wrote:

> Hi,
> 
> On 05/24/2013 06:07 PM, Nathan Hjelm wrote:
>> 
>> On May 24, 2013, at 9:10 AM, Hans de Goede <hdego...@redhat.com> wrote:
>> 
>>> Hi all,
>>> 
>>> With some help from Pete, Xiaofan as well as Nathan, I have been working on
>>> integrating the libusb hp API work done by Nathan for 1.0.16 on top of 
>>> libusbx.
>>> 
>>> The plan is to release this as 1.2.0 within the next few weeks.
>>> 
>>> On top of integrating Nathan's work I've now also added the wince fixes 
>>> posted
>>> to the list a few days ago.
>>> 
>>> Next on my hitlist was, and still is bos and ss-ep-comp support. While 
>>> looking
>>> at this, I ended up taking a closer look at our config descriptor handling 
>>> code,
>>> esp. the Linux bits, but also the generic parser parts.
>>> 
>>> As a result of this I've done some significant cleanup / refactoring of the 
>>> Linux
>>> config descriptor handling code, cleaning it up, fixing bugs, and fix the
>>> long standing issue of using usbfs descriptors on newer kernels where we
>>> really should not do that.
>>> 
>>> I've also done some robustness fixes to the generic descriptor parsing code.
>>> 
>>> Testing and review on all this new work is very much welcome.
>> 
>> Will git pull and test my fixes on top of your current repository.
>> 
>>> Last, but not least while doing my own testing I found an issue with the new
>>> hotplug code, where it breaks apps which are already doing hotplug on their
>>> own. For details and a fix see:
>>> https://github.com/jwrdegoede/libusbx/commit/9e40864617602eb37f6d8ad2e5acf67ba93634d8
>> 
>> Never considered that possibility. Shouldn't these apps move to using the 
>> libusb
>> hotplug interface (not that I see any problem with the fix)?
> 
> Yes they should, eventually, but in the mean time we don't want to break them.
> 
>>> I believe the new hotplug_poll function this introduces should be 
>>> implemented
>>> under darwin too, as the same issue can likely happen there.
>> 
>> Yup, there will probably be a race there but the fix may be a little more 
>> complicated than
>> it is under Linux.
> 
> So the question then maybe if there are any apps doing hotplug already (and 
> thus on
> their own) for darwin, if there are no such apps, then we may consider simply 
> not
> fixing this under darwin. Under Linux this is not really an option, since many
> libusb using apps simple hook into udev themselves to get hotplug support, and
> they expect libusb_get_device_list after a "add" action to contain the new 
> device,
> and they tend to win the race with our own hotplug handler, since that does
> enumeration which is slow (and they just directly call libusb_get_device_list,
> expecting that to do the enumeration for them).

Yeah, the same should be true on darwin. I will keep an eye out for apps that 
implement their
own darwin hotplug support. If I find any I will work on implementing the fix 
for darwin. In the
meantime I will work on getting the internal device caching stuff ready. 
Shouldn't take much
longer.

BTW, libusb/os/poll_posix.c is missing from 
https://github.com/jwrdegoede/libusbx/commit/cc1472ab89374fb912b52434fe8cc1f1af7157c6
 in your tree.

-Nathan


------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel

Reply via email to