chiark / gitweb /
update TODO
[elogind.git] / udev / udevadm-settle.c
index b717ae60de1a663fe745dd84e229c8ac2f769c25..b17ba806d00a7ec33b79f002adcd91ec7d593cff 100644 (file)
@@ -183,8 +183,14 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[])
                }
 
                if (pfd[0].fd >= 0) {
-                       /* wake up once every second, or whenever the queue file gets gets closed */
-                       if (poll(pfd, 1, 1000) > 0 && pfd[0].revents & POLLIN) {
+                       int delay;
+
+                       if (exists != NULL || start > 0)
+                               delay = 100;
+                       else
+                               delay = 1000;
+                       /* wake up after delay, or immediately after the queue is rebuilt */
+                       if (poll(pfd, 1, delay) > 0 && pfd[0].revents & POLLIN) {
                                char buf[sizeof(struct inotify_event) + PATH_MAX];
 
                                read(pfd[0].fd, buf, sizeof(buf));