chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rename interfaces to <iface>_rename if rename fails
[elogind.git]
/
udev
/
udevd.c
diff --git
a/udev/udevd.c
b/udev/udevd.c
index 54064cbfcf58de88aa7232805d3ef92aaf800e3f..2eb914a3f335f61952b355328ef9c8fae707b559 100644
(file)
--- a/
udev/udevd.c
+++ b/
udev/udevd.c
@@
-79,6
+79,7
@@
static bool stop_exec_queue;
static bool reload_config;
static int max_childs;
static int childs;
static bool reload_config;
static int max_childs;
static int childs;
+static sigset_t orig_sigmask;
static struct udev_list_node event_list;
static struct udev_list_node worker_list;
static bool udev_exit;
static struct udev_list_node event_list;
static struct udev_list_node worker_list;
static bool udev_exit;
@@
-292,7
+293,8
@@
static void worker_new(struct event *event)
/* execute RUN= */
if (err == 0 && !udev_event->ignore_device && udev_get_run(udev_event->udev))
/* execute RUN= */
if (err == 0 && !udev_event->ignore_device && udev_get_run(udev_event->udev))
- failed = udev_event_execute_run(udev_event);
+ failed = udev_event_execute_run(udev_event,
+ &orig_sigmask);
/* reset alarm */
alarm(0);
/* reset alarm */
alarm(0);
@@
-926,7
+928,7
@@
int main(int argc, char *argv[])
/* block and listen to all signals on signalfd */
sigfillset(&mask);
/* block and listen to all signals on signalfd */
sigfillset(&mask);
- sigprocmask(SIG_SETMASK, &mask,
NULL
);
+ sigprocmask(SIG_SETMASK, &mask,
&orig_sigmask
);
pfd[FD_SIGNAL].fd = signalfd(-1, &mask, 0);
if (pfd[FD_SIGNAL].fd < 0) {
fprintf(stderr, "error getting signalfd\n");
pfd[FD_SIGNAL].fd = signalfd(-1, &mask, 0);
if (pfd[FD_SIGNAL].fd < 0) {
fprintf(stderr, "error getting signalfd\n");