chiark / gitweb /
udevadm: settle: wake up more often if --seq-start= or --exit-if-exists= is used
authorKay Sievers <kay.sievers@vrfy.org>
Wed, 18 May 2011 16:58:04 +0000 (18:58 +0200)
committerKay Sievers <kay.sievers@vrfy.org>
Wed, 18 May 2011 16:58:04 +0000 (18:58 +0200)
udev/udevadm-settle.c

index b717ae60de1a663fe745dd84e229c8ac2f769c25..053a3bba333f048017074e2f2ac515484484f317 100644 (file)
@@ -183,8 +183,15 @@ 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;
+
+                       /* wake up after delay, or immediately after the queue is rebuilt */
+
+                       if (exists != NULL || start > 0)
+                               delay = 100;
+                       else
+                               delay = 1000;
+                       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));