X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fsig-monitor.c;h=1e5193517093d927209365464a7fd329cb1be9e6;hb=e285cfb2219eb5a1034208efaf6d1a2d875c721f;hp=3e16f7206d98ade112e0a97b1bf64fb35bde18e9;hpb=ae6f684d830871e81b0b4168424f6a4873eabbff;p=src%2Fapp-framework-binder.git diff --git a/src/sig-monitor.c b/src/sig-monitor.c index 3e16f720..1e519351 100644 --- a/src/sig-monitor.c +++ b/src/sig-monitor.c @@ -28,6 +28,8 @@ #include "sig-monitor.h" #include "verbose.h" +#define SIG_FOR_TIMER (SIGVTALRM+2) + /* local handler */ static _Thread_local sigjmp_buf *error_handler; @@ -49,7 +51,7 @@ static inline int timeout_create() rc = 0; else { sevp.sigev_notify = SIGEV_THREAD_ID; - sevp.sigev_signo = SIGALRM; + sevp.sigev_signo = SIG_FOR_TIMER; sevp.sigev_value.sival_ptr = NULL; #if defined(sigev_notify_thread_id) sevp.sigev_notify_thread_id = (pid_t)syscall(SYS_gettid); @@ -124,7 +126,7 @@ static void on_signal_error(int signum) sigprocmask(SIG_UNBLOCK, &sigset, 0); longjmp(*error_handler, signum); } - if (signum == SIGALRM) + if (signum == SIG_FOR_TIMER) return; ERROR("Unmonitored signal %d received: %s", signum, strsignal(signum)); exit(2); @@ -146,7 +148,7 @@ static int install(void (*handler)(int), int *signals) int sig_monitor_init() { - static int sigerr[] = { SIGALRM, SIGSEGV, SIGFPE, 0 }; + static int sigerr[] = { SIG_FOR_TIMER, SIGSEGV, SIGFPE, 0 }; static int sigterm[] = { SIGINT, SIGABRT, 0 }; return (install(on_signal_error, sigerr) & install(on_signal_terminate, sigterm)) - 1;