Hello Martin. Martin Pitt wrote: > > Although wait-for-root uses blocking socket, udev_monitor_receive_device() sometimes > > immediately returns NULL. > > It *assumed* a blocking socket, but didn't make sure that it actually > was. Originally libudev used blocking sockets, but at some point [1] > this was switched to non-blocking by default, and wait-for-root needed > to be adjusted to that. Please see https://launchpad.net/bugs/1154813, > it's fixed in newer Ubuntu releases. Yes, I have checked LP #1154813. But I think that my case is different. I'm using Ubuntu 12.04 (Precise Pangolin), not Ubuntu 13.04 (Raring Ringtail); I think [1] is not yet applied as of Ubuntu 12.04. What #1154813 solves is that "make sure that udev_monitor_receive_device() called by wait-for-root waits for event at recvmsg()". What I'm talking is that "udev_monitor_receive_device() called by wait-for-root does not wait for next event at poll() whereas it waits for first event at recvmsg()". -- To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html