diff options
Diffstat (limited to 'gnuradio-runtime/lib/local_sighandler.cc')
-rw-r--r-- | gnuradio-runtime/lib/local_sighandler.cc | 130 |
1 files changed, 63 insertions, 67 deletions
diff --git a/gnuradio-runtime/lib/local_sighandler.cc b/gnuradio-runtime/lib/local_sighandler.cc index ebd9bb1362..4f3083b3ed 100644 --- a/gnuradio-runtime/lib/local_sighandler.cc +++ b/gnuradio-runtime/lib/local_sighandler.cc @@ -31,10 +31,9 @@ namespace gr { - local_sighandler::local_sighandler(int signum, - void (*new_handler)(int)) +local_sighandler::local_sighandler(int signum, void (*new_handler)(int)) : d_signum(signum) - { +{ #ifdef HAVE_SIGACTION struct sigaction new_action; memset(&new_action, 0, sizeof(new_action)); @@ -43,147 +42,144 @@ namespace gr { sigemptyset(&new_action.sa_mask); new_action.sa_flags = 0; - if(sigaction (d_signum, &new_action, &d_old_action) < 0) { - perror("sigaction (install new)"); - throw std::runtime_error("sigaction"); + if (sigaction(d_signum, &new_action, &d_old_action) < 0) { + perror("sigaction (install new)"); + throw std::runtime_error("sigaction"); } #endif - } +} - local_sighandler::~local_sighandler() - { +local_sighandler::~local_sighandler() +{ #ifdef HAVE_SIGACTION - if(sigaction (d_signum, &d_old_action, 0) < 0) { - perror("sigaction (restore old)"); - throw std::runtime_error("sigaction"); + if (sigaction(d_signum, &d_old_action, 0) < 0) { + perror("sigaction (restore old)"); + throw std::runtime_error("sigaction"); } #endif - } +} - void - local_sighandler::throw_signal(int signum) - { - throw signal(signum); - } +void local_sighandler::throw_signal(int signum) { throw signal(signum); } - /* - * Semi-hideous way to may a signal number into a signal name - */ - #define SIGNAME(x) case x: return #x +/* + * Semi-hideous way to may a signal number into a signal name + */ +#define SIGNAME(x) \ + case x: \ + return #x - std::string - signal::name() const - { +std::string signal::name() const +{ char tmp[128]; - switch(signum()) { + switch (signum()) { #ifdef SIGHUP - SIGNAME(SIGHUP); + SIGNAME(SIGHUP); #endif #ifdef SIGINT - SIGNAME(SIGINT); + SIGNAME(SIGINT); #endif #ifdef SIGQUIT - SIGNAME(SIGQUIT); + SIGNAME(SIGQUIT); #endif #ifdef SIGILL - SIGNAME(SIGILL); + SIGNAME(SIGILL); #endif #ifdef SIGTRAP - SIGNAME(SIGTRAP); + SIGNAME(SIGTRAP); #endif #ifdef SIGABRT - SIGNAME(SIGABRT); + SIGNAME(SIGABRT); #endif #ifdef SIGBUS - SIGNAME(SIGBUS); + SIGNAME(SIGBUS); #endif #ifdef SIGFPE - SIGNAME(SIGFPE); + SIGNAME(SIGFPE); #endif #ifdef SIGKILL - SIGNAME(SIGKILL); + SIGNAME(SIGKILL); #endif #ifdef SIGUSR1 - SIGNAME(SIGUSR1); + SIGNAME(SIGUSR1); #endif #ifdef SIGSEGV - SIGNAME(SIGSEGV); + SIGNAME(SIGSEGV); #endif #ifdef SIGUSR2 - SIGNAME(SIGUSR2); + SIGNAME(SIGUSR2); #endif #ifdef SIGPIPE - SIGNAME(SIGPIPE); + SIGNAME(SIGPIPE); #endif #ifdef SIGALRM - SIGNAME(SIGALRM); + SIGNAME(SIGALRM); #endif #ifdef SIGTERM - SIGNAME(SIGTERM); + SIGNAME(SIGTERM); #endif #ifdef SIGSTKFLT - SIGNAME(SIGSTKFLT); + SIGNAME(SIGSTKFLT); #endif #ifdef SIGCHLD - SIGNAME(SIGCHLD); + SIGNAME(SIGCHLD); #endif #ifdef SIGCONT - SIGNAME(SIGCONT); + SIGNAME(SIGCONT); #endif #ifdef SIGSTOP - SIGNAME(SIGSTOP); + SIGNAME(SIGSTOP); #endif #ifdef SIGTSTP - SIGNAME(SIGTSTP); + SIGNAME(SIGTSTP); #endif #ifdef SIGTTIN - SIGNAME(SIGTTIN); + SIGNAME(SIGTTIN); #endif #ifdef SIGTTOU - SIGNAME(SIGTTOU); + SIGNAME(SIGTTOU); #endif #ifdef SIGURG - SIGNAME(SIGURG); + SIGNAME(SIGURG); #endif #ifdef SIGXCPU - SIGNAME(SIGXCPU); + SIGNAME(SIGXCPU); #endif #ifdef SIGXFSZ - SIGNAME(SIGXFSZ); + SIGNAME(SIGXFSZ); #endif #ifdef SIGVTALRM - SIGNAME(SIGVTALRM); + SIGNAME(SIGVTALRM); #endif #ifdef SIGPROF - SIGNAME(SIGPROF); + SIGNAME(SIGPROF); #endif #ifdef SIGWINCH - SIGNAME(SIGWINCH); + SIGNAME(SIGWINCH); #endif #ifdef SIGIO - SIGNAME(SIGIO); + SIGNAME(SIGIO); #endif #ifdef SIGPWR - SIGNAME(SIGPWR); + SIGNAME(SIGPWR); #endif #ifdef SIGSYS - SIGNAME(SIGSYS); + SIGNAME(SIGSYS); #endif default: -#if defined (HAVE_SNPRINTF) -#if defined (SIGRTMIN) && defined (SIGRTMAX) - if(signum() >= SIGRTMIN && signum() <= SIGRTMAX) { - snprintf(tmp, sizeof(tmp), "SIGRTMIN + %d", signum()); +#if defined(HAVE_SNPRINTF) +#if defined(SIGRTMIN) && defined(SIGRTMAX) + if (signum() >= SIGRTMIN && signum() <= SIGRTMAX) { + snprintf(tmp, sizeof(tmp), "SIGRTMIN + %d", signum()); + return tmp; + } +#endif + snprintf(tmp, sizeof(tmp), "SIGNAL %d", signum()); return tmp; - } -#endif - snprintf(tmp, sizeof(tmp), "SIGNAL %d", signum()); - return tmp; #else - return "Unknown signal"; + return "Unknown signal"; #endif } - } +} } /* namespace gr */ |