signal_handler: increase alarm timeout to 5s and use raise instead of exit()

it seems that exit() causes problems when threads couldn't be stopped
properly, which is the reason why we have to call alarm() in the first place.
therefore, send a SIGKILL to our process and make sure we don't leave any
zombie threads running.
This commit is contained in:
Andre Puschmann 2020-04-03 21:20:55 +02:00
parent d69aa55a42
commit 057844d7d6
1 changed files with 2 additions and 2 deletions

View File

@ -35,7 +35,7 @@
extern "C" {
#endif // __cplusplus
#define SRSLTE_TERM_TIMEOUT_S (3)
#define SRSLTE_TERM_TIMEOUT_S (5)
// static vars required by signal handling
static srslte::logger_file logger_file;
@ -47,7 +47,7 @@ static void srslte_signal_handler(int signal)
case SIGALRM:
fprintf(stderr, "Couldn't stop after %ds. Forcing exit.\n", SRSLTE_TERM_TIMEOUT_S);
logger_file.stop();
exit(-1);
raise(SIGKILL);
default:
// all other registered signals try to stop the app gracefully
if (running) {