act.sa_flags = 0;
sigaction(SIGALRM, &act, NULL);
+ /* reset to default */
+ act.sa_handler = SIG_DFL;
+ sigaction(SIGINT, &act, NULL);
+ sigaction(SIGTERM, &act, NULL);
+ sigaction(SIGCHLD, &act, NULL);
+ sigaction(SIGHUP, &act, NULL);
+
/* trigger timeout to prevent hanging processes */
alarm(UDEV_ALARM_TIMEOUT);
if (loop_msg->devpath && strcmp(loop_msg->devpath, msg->devpath) == 0)
return;
+ list_for_each_entry(loop_msg, &exec_list, node)
+ if (loop_msg->devpath && strcmp(loop_msg->devpath, msg->devpath) == 0)
+ return;
+
/* move failed events to the failed directory */
if (state == EVENT_FAILED) {
create_path(filename_failed);