switch (signum) {
case SIGALRM:
is_timeout = 1;
- case SIGUSR1:
- ;
}
}
sigemptyset (&act.sa_mask);
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;
uctrl = udev_ctrl_new_from_socket(udev, UDEV_CTRL_SOCK_PATH);
if (uctrl != NULL) {
- sigset_t oldmask;
-
- sigemptyset(&mask);
- sigaddset(&mask, SIGUSR1);
- sigaddset(&mask, SIGALRM);
- sigprocmask(SIG_BLOCK, &mask, &oldmask);
- if (udev_ctrl_send_settle(uctrl) > 0)
- sigsuspend(&oldmask);
- sigprocmask(SIG_SETMASK, &oldmask, NULL);
+ if (udev_ctrl_send_ping(uctrl, timeout) < 0) {
+ info(udev, "no connection to daemon\n");
+ udev_ctrl_unref(uctrl);
+ rc = 0;
+ goto out;
+ }
udev_ctrl_unref(uctrl);
}
}
- while (1) {
+ for (;;) {
struct stat statbuf;
const struct timespec duration = { 0 , 1000 * 1000 * 1000 / LOOP_PER_SECOND };
udev_list_entry_get_value(list_entry));
}
}
-
+out:
udev_queue_unref(udev_queue);
return rc;
}