*
*/
-#define _KLIBC_HAS_ARCH_SIG_ATOMIC_T
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include "namedev.h"
#include "udevdb.h"
-/* timeout flag for udevdb */
-extern sig_atomic_t gotalarm;
/* global variables */
char **main_argv;
{
switch (signum) {
case SIGALRM:
- gotalarm = 1;
- info("error: timeout reached, event probably not handled correctly");
- break;
+ exit(1);
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);
/* trigger timout to interrupt blocking syscalls */
alarm(ALARM_TIMEOUT);
- /* initialize udev database */
- if (udevdb_init(UDEVDB_DEFAULT) != 0)
- info("error: unable to initialize database, continuing without database");
-
switch(act_type) {
case UDEVSTART:
dbg("udevstart");
dev_d_execute(&udev);
}
- udevdb_exit();
-
exit:
logging_close();
return retval;