X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudevadm-settle.c;h=9f409b61b80ea5f941330d08f7ecf12717a03a22;hb=d800e8688a34bc848977999ce77fb40cba17df9e;hp=053a3bba333f048017074e2f2ac515484484f317;hpb=bd8e0e387d844bd5b7d8c29ca2871c824c0fc146;p=elogind.git diff --git a/udev/udevadm-settle.c b/udev/udevadm-settle.c index 053a3bba3..9f409b61b 100644 --- a/udev/udevadm-settle.c +++ b/udev/udevadm-settle.c @@ -36,7 +36,7 @@ #include "udev.h" -int udevadm_settle(struct udev *udev, int argc, char *argv[]) +static int adm_settle(struct udev *udev, int argc, char *argv[]) { static const struct option options[] = { { "seq-start", required_argument, NULL, 's' }, @@ -96,7 +96,9 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[]) " --exit-if-exists= stop waiting if file exists\n" " --quiet do not print list after timeout\n" " --help\n\n"); - exit(0); + exit(EXIT_SUCCESS); + default: + exit(EXIT_FAILURE); } } @@ -185,12 +187,11 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[]) if (pfd[0].fd >= 0) { int delay; - /* wake up after delay, or immediately after the queue is rebuilt */ - 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]; @@ -226,3 +227,9 @@ out: udev_queue_unref(udev_queue); return rc; } + +const struct udevadm_cmd udevadm_settle = { + .name = "settle", + .cmd = adm_settle, + .help = "wait for the event queue to finish", +};