On 05/04/13 02:25, Xiaofan Chen wrote: > On Fri, Apr 5, 2013 at 12:04 AM, Toby Gray<toby.g...@realvnc.com> wrote: >> I understand that this is probably too risky a change to get into 1.0.15, >> especially as no-one else seems to have reported it. > There were past reports of issues under Windows XP and Windows 7 > when using libusbx async API with multithreaded programs. I am not > so sure if your issue is related to the reports or not though. > https://github.com/libusbx/libusbx/issues/52 > Orhttp://www.libusb.org/ticket/140
I did see the issue described in those reports once while investigating the null pointer dereference. As far as I can remember the fds that poll was looking contained an fd that didn't appear in the flying transfer list, so attempting to find a transfer always failed. If step 15 happened slightly differently, so that the OVERLAPPED had been set to non-zero after the incorrect, old, fd had been read then the wrong transfer would be completed. When the OS signalled that the transfer that was incorrectly completed has completed then the backend would fail to find the signalled fd in the flying transfers list as it has already removed the wrong transfer from the list for the previous completed transfer. Regards, Toby ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ libusbx-devel mailing list libusbx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libusbx-devel