X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev%2Fudevadm-settle.c;h=1423cec6dc72c44108fb328f8d3878ae81797b20;hp=5030f18602c9e8a8bd3163b80f6b1f5379987157;hb=ef5304bc8ddda1917143e96bc3addeb5a09588c6;hpb=bbfeee28fc00642a01bf3f9c24e6c0e942d4adf8 diff --git a/udev/udevadm-settle.c b/udev/udevadm-settle.c index 5030f1860..1423cec6d 100644 --- a/udev/udevadm-settle.c +++ b/udev/udevadm-settle.c @@ -66,6 +66,7 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[]) const char *exists = NULL; int timeout = DEFAULT_TIMEOUT; struct sigaction act; + sigset_t mask; struct udev_queue *udev_queue = NULL; int rc = 1; @@ -78,8 +79,12 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[]) act.sa_flags = 0; sigaction(SIGALRM, &act, NULL); sigaction(SIGUSR1, &act, NULL); + sigemptyset(&mask); + sigaddset(&mask, SIGUSR1); + sigaddset(&mask, SIGALRM); + sigprocmask(SIG_UNBLOCK, &mask, NULL); - while (1) { + for (;;) { int option; int seconds; @@ -163,7 +168,7 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[]) uctrl = udev_ctrl_new_from_socket(udev, UDEV_CTRL_SOCK_PATH); if (uctrl != NULL) { - sigset_t mask, oldmask; + sigset_t oldmask; sigemptyset(&mask); sigaddset(&mask, SIGUSR1); @@ -176,7 +181,7 @@ int udevadm_settle(struct udev *udev, int argc, char *argv[]) } } - while (1) { + for (;;) { struct stat statbuf; const struct timespec duration = { 0 , 1000 * 1000 * 1000 / LOOP_PER_SECOND };