chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
unify/cleanup event handling
[elogind.git]
/
udev
/
udevadm-settle.c
diff --git
a/udev/udevadm-settle.c
b/udev/udevadm-settle.c
index 124c59698c491ab04e9b9ecd2722738ad544286d..4f422f90927d410b3287721245fed26444435840 100644
(file)
--- 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;
const char *exists = NULL;
int timeout = DEFAULT_TIMEOUT;
struct sigaction act;
+ sigset_t mask;
struct udev_queue *udev_queue = NULL;
int rc = 1;
struct udev_queue *udev_queue = NULL;
int rc = 1;
@@
-78,6
+79,10
@@
int udevadm_settle(struct udev *udev, int argc, char *argv[])
act.sa_flags = 0;
sigaction(SIGALRM, &act, NULL);
sigaction(SIGUSR1, &act, NULL);
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) {
int option;
while (1) {
int option;
@@
-140,14
+145,12
@@
int udevadm_settle(struct udev *udev, int argc, char *argv[])
if (start > end) {
err(udev, "seq-start larger than seq-end, ignoring\n");
if (start > end) {
err(udev, "seq-start larger than seq-end, ignoring\n");
- fprintf(stderr, "seq-start larger than seq-end, ignoring\n");
start = 0;
end = 0;
}
if (start > kernel_seq || end > kernel_seq) {
err(udev, "seq-start or seq-end larger than current kernel value, ignoring\n");
start = 0;
end = 0;
}
if (start > kernel_seq || end > kernel_seq) {
err(udev, "seq-start or seq-end larger than current kernel value, ignoring\n");
- fprintf(stderr, "seq-start or seq-end larger than current kernel value, ignoring\n");
start = 0;
end = 0;
}
start = 0;
end = 0;
}
@@
-155,7
+158,6
@@
int udevadm_settle(struct udev *udev, int argc, char *argv[])
} else {
if (end > 0) {
err(udev, "seq-end needs seq-start parameter, ignoring\n");
} else {
if (end > 0) {
err(udev, "seq-end needs seq-start parameter, ignoring\n");
- fprintf(stderr, "seq-end needs seq-start parameter, ignoring\n");
end = 0;
}
}
end = 0;
}
}
@@
-166,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) {
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);
sigemptyset(&mask);
sigaddset(&mask, SIGUSR1);