Hi,

On 06/13/2013 08:16 PM, Chris Dickens wrote:
> Hi,
>
> Here's the patch.

Thanks, I've just pushed a somewhat modified version to master, I made 2 
changes:

1) Use F_SETFL rather then F_SETFD as according to the manpage for O_NONBLOCK,
    F_SETFL should be used. I'm surprised it works with F_SETFD too...

2) First get the flags and then or in O_NONBLOCK, rather then overriding 
whatever
    was set with only O_NONBLOCK.

Can you please give the latest master a try on your setup and confirm that my 
version
also fixes your issue?

Thanks & Regards,

Hans


>
> BTW, I was running RHEL6.4 with libudev 147-2.46.
>
> Regards,
> Chris
>
>
> On Thu, Jun 13, 2013 at 2:23 AM, Hans de Goede <hdego...@redhat.com 
> <mailto:hdego...@redhat.com>> wrote:
>
>     Hi,
>
>
>     On 06/13/2013 12:10 AM, Chris Dickens wrote:
>
>         Hi,
>
>         I'm running the latest code from the master branch 
> (__cf8a313b2cdb6a25f00730452aab91__30cac5c52b) and am in the process of 
> converting my application to use hotplug functionality on Linux. When my 
> application calls libusb_get_device_list(), it hangs forever.
>
>         I have tracked the issue to the hotplug_poll() function. The call to 
> udev_monitor_receive_device() blocks forever. Even though this documentation 
> (http://www.freedesktop.org/__software/systemd/libudev/__libudev-udev-monitor.html#__udev-monitor-receive-device
>  
> <http://www.freedesktop.org/software/systemd/libudev/libudev-udev-monitor.html#udev-monitor-receive-device>)
>  specifies that it is non-blocking by default, I found this not to be the 
> case. As such, the loop never exits. The call to receive_device blocks until 
> there is actually udev activity, and it returns a non-NULL value when this
>         happens. This prevents the loop in hotplug_poll() from ever exiting.
>
>         Simply setting the udev_monitor_fd to non-blocking (fcntl with 
> O_NONBLOCK) resolved this issue for me.
>
>
>     Hmm, this is likely caused by you using an older version of libudev which 
> did not set the fd
>     to non-blocking by default.
>
>     We do want to support such older versions, so thanks for testing this, 
> and figuring out the fix!
>
>     Since I don't have an environment to test this, can you please send a 
> tested patch fixing this?
>
>     Then I'll test it does not break anything with newer versions of libudev 
> and push it to master.
>
>     Thanks & 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
> 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

Reply via email to