switch (signum) {
case SIGALRM:
gotalarm = 1;
- info("error: timeout reached, event probably not handled correctly");
break;
case SIGINT:
case SIGTERM:
- udevdb_exit();
exit(20 + signum);
- default:
- dbg("unhandled signal %d", signum);
}
}
/* set signal handlers */
act.sa_handler = (void (*) (int))sig_handler;
sigemptyset (&act.sa_mask);
+ act.sa_flags = 0;
/* alarm must not restart syscalls*/
sigaction(SIGALRM, &act, NULL);
sigaction(SIGINT, &act, NULL);
#include <sys/param.h>
#include "libsysfs/sysfs/libsysfs.h"
-#define ALARM_TIMEOUT 30
+#define ALARM_TIMEOUT 120
#define COMMENT_CHARACTER '#'
#define NAME_SIZE 256
sigchilds_waiting = 1;
goto do_write;
break;
- default:
- dbg("unhandled signal %d", signum);
- return;
}
-
+
do_write:
/* if pipe is empty, write to pipe to force select to return
* immediately when it gets called
*/
if (!sig_flag) {
rc = write(pipefds[1],&signum,sizeof(signum));
- if (rc < 0)
- dbg("unable to write to pipe");
- else
+ if (rc >= 0)
sig_flag = 1;
}
}