Hi On Wed, Apr 8, 2015 at 3:04 AM, Nir Soffer <nir...@gmail.com> wrote: > Commit 9ea28c55a2 (udev: remove seqnum API and all assumptions about > seqnums) introduced a regresion, ignoring the timeout option when > waiting until the event queue is empty. > > Previously, if the udev event queue was not empty when the timeout was > expired, udevadm settle was returning with exit code 1. To check if the > queue is empty, you could invoke udevadm settle with timeout=0. This > patch restores the previous behavior. > --- > src/udev/udevadm-settle.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c > index 0d3025e..715d2e7 100644 > --- a/src/udev/udevadm-settle.c > +++ b/src/udev/udevadm-settle.c > @@ -49,6 +49,7 @@ static int adm_settle(struct udev *udev, int argc, char > *argv[]) { > { "quiet", no_argument, NULL, 'q' }, /* > removed */ > {} > }; > + usec_t deadline = 0;
This assignment is not required, dropped. > const char *exists = NULL; > unsigned int timeout = 120; > struct pollfd pfd[1] = { {.fd = -1}, }; > @@ -98,6 +99,8 @@ static int adm_settle(struct udev *udev, int argc, char > *argv[]) { > return EXIT_FAILURE; > } > > + deadline = now(CLOCK_MONOTONIC) + timeout * USEC_PER_SEC; > + > /* guarantee that the udev daemon isn't pre-processing */ > if (getuid() == 0) { > struct udev_ctrl *uctrl; > @@ -139,6 +142,9 @@ static int adm_settle(struct udev *udev, int argc, char > *argv[]) { > break; > } > > + if (now(CLOCK_MONOTONIC) >= deadline) > + break; > + Previous udevadm allowed timeout=0 to disable this. I added the condition. Applied! Thanks David > /* wake up when queue is empty */ > if (poll(pfd, 1, MSEC_PER_SEC) > 0 && pfd[0].revents & > POLLIN) > udev_queue_flush(queue); > -- > 1.9.3 > > _______________________________________________ > systemd-devel mailing list > systemd-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/systemd-devel _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel