From bd8e0e387d844bd5b7d8c29ca2871c824c0fc146 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Wed, 18 May 2011 18:58:04 +0200 Subject: [PATCH] udevadm: settle: wake up more often if --seq-start= or --exit-if-exists= is used --- udev/udevadm-settle.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/udev/udevadm-settle.c b/udev/udevadm-settle.c index b717ae6..053a3bb 100644 --- a/udev/udevadm-settle.c +++ b/udev/udevadm-settle.c @@ -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)); -- 2.7.4