diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-02-21 20:15:18 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-02-22 20:04:47 +0100 |
commit | ab22f4c421e088bbc6ebef151ee3231ffb68e778 (patch) | |
tree | d3733901401723c5d6c8dd460892de87b581a420 /Transceiver52M | |
parent | 8b843e5bed6e3dab1068b86805e557a196f9aa4c (diff) |
osmo-trx: set up signals using libosmocore helpers
Change-Id: I86e78cd6054d0deff1b1aa061299d9f307e2a352
Diffstat (limited to 'Transceiver52M')
-rw-r--r-- | Transceiver52M/osmo-trx.cpp | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/Transceiver52M/osmo-trx.cpp b/Transceiver52M/osmo-trx.cpp index 16866f4..0562dcd 100644 --- a/Transceiver52M/osmo-trx.cpp +++ b/Transceiver52M/osmo-trx.cpp @@ -37,6 +37,7 @@ #include <Logger.h> extern "C" { +#include <osmocom/core/application.h> #include "convolve.h" #include "convert.h" } @@ -240,20 +241,27 @@ Transceiver *makeTransceiver(struct trx_config *config, RadioInterface *radio) static void sig_handler(int signo) { - fprintf(stdout, "Received shutdown signal"); - gshutdown = true; + fprintf(stdout, "signal %d received\n", signo); + switch (signo) { + case SIGINT: + case SIGTERM: + fprintf(stdout, "shutting down\n"); + gshutdown = true; + break; + default: + break; + } } static void setup_signal_handlers() { - if (signal(SIGINT, sig_handler) == SIG_ERR) { - fprintf(stderr, "Failed to install SIGINT signal handler\n"); - exit(EXIT_FAILURE); - } - if (signal(SIGTERM, sig_handler) == SIG_ERR) { - fprintf(stderr, "Couldn't install SIGTERM signal handler\n"); - exit( EXIT_FAILURE); - } + /* Handle keyboard interrupt SIGINT */ + signal(SIGINT, &sig_handler); + signal(SIGTERM, &sig_handler); + signal(SIGABRT, &sig_handler); + signal(SIGUSR1, &sig_handler); + signal(SIGUSR2, &sig_handler); + osmo_init_ignore_signals(); } @@ -478,6 +486,8 @@ int main(int argc, char *argv[]) RadioDevice::InterfaceType iface = RadioDevice::NORMAL; struct trx_config config; + setup_signal_handlers(); + #ifdef HAVE_SSE3 printf("Info: SSE3 support compiled in"); #ifdef HAVE___BUILTIN_CPU_SUPPORTS @@ -512,8 +522,6 @@ int main(int argc, char *argv[]) return EXIT_FAILURE; } - setup_signal_handlers(); - /* Check database sanity */ if (!trx_setup_config(&config)) { std::cerr << "Config: Database failure - exiting" << std::endl; |