chiark / gitweb /
Docs: udev.xml: Offset daemon name with commas
[elogind.git] / udev / udevadm-settle.c
index 5030f18602c9e8a8bd3163b80f6b1f5379987157..1423cec6dc72c44108fb328f8d3878ae81797b20 100644 (file)
@@ -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 };